0

我在两个不同的、相同的虚拟机上有两个节点——都是相同的 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() 在每个节点上运行时报告与上面完全相同的数字。
  • 这些表都是内存副本
  • 没有交易正在进行 - 几个小时没有行动
  • mnesia:info() 还报告:33 个事务已提交,0 个中止,9 个重新启动,0 个记录到磁盘 0 个持有锁,0 个在队列中;0 个本地事务,0 个远程 0 个事务等待其他节点:[]

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

4

1 回答 1

0

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

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

于 2012-10-11T09:29:31.993 回答