【问题标题】:Should memory used be different on different, identical nodes when both nodes are participating in a mnesia cluster?当两个节点都参与一个 mnesia 集群时,在不同的相同节点上使用的内存是否应该不同?
【发布时间】:2012-10-01 10:47:17
【问题描述】:

我在两个不同的、相同的虚拟机上有两个节点——都是相同的 CentOS 64 位、相同数量的 RAM、CPU 等。

我在这两个节点上集群了 mnesia —— 非常维纳拉,非碎片集群

节点 1 显示以下内容

 {size,[{ttl,0,283},
        {scope_to_keys,5,97105},
        {type_to_keys,3,97043},
        {key_to_value,6015,393137},
        {schema,5,935}]}

节点 2 显示

 {size,[{ttl,0,300},
        {scope_to_keys,5,97122},
        {type_to_keys,3,97060},
        {key_to_value,6015,405184},
        {schema,5,952}]}

元组结构是{table_name, records, words}。

  • mnesia:info() 在每个节点上运行时报告的数字与上述完全相同。
  • 这些表都是 ram 副本
  • 没有交易正在进行 - 几个小时内没有任何操作
  • mnesia:info() 还报告: 33 个事务提交,0 个中止,9 个重新启动,0 个记录到磁盘 0 个持有锁,0 个在队列中; 0 本地事务,0 远程 0 个事务等待其他节点:[]

两个节点报告使用的内存不同是否正常?

【问题讨论】:

    标签: erlang mnesia


    【解决方案1】:

    你应该做的是询问两个节点表内容是否相同。 Mnesia 和 Erlang 通常会收集垃圾。因此,在某些情况下,内存的实际使用可能会有所不同。另请注意,可能是其中一个节点当前正在做一些维护工作/成为领导者等等。这将使记忆有点不同。最后,这两个节点可能正在存储原始二进制文件所在的子二进制文件。但是在复制时,子二进制文件被削减并复制到另一个节点。这可能是一个小的差异。

    除非大小有显着差异。也就是说,一个节点会多使用 33% 的内存,那我就不用太担心了。

    【讨论】:

      猜你喜欢
      • 2014-08-05
      • 1970-01-01
      • 2020-06-14
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多