Erlang 当两个节点都参与mnesia集群时,在不同、相同的节点上使用的内存是否应该不同?

Erlang 当两个节点都参与mnesia集群时,在不同、相同的节点上使用的内存是否应该不同?,erlang,mnesia,Erlang,Mnesia,我在两个不同、相同的虚拟机上有两个节点——都是相同的CentOS 64位、相同数量的RAM、CPU等 我把mnesia聚集在这两个节点上——非常vinalla,非碎片化的集群 节点1显示以下内容 {size,[{ttl,0,283}, {scope_to_keys,5,97105}, {type_to_keys,3,97043}, {key_to_value,6015,393137}, {schema,5,935}]} 节点2显

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

我把mnesia聚集在这两个节点上——非常vinalla,非碎片化的集群

节点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事务等待其他节点:[]

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

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

除非尺寸有显著差异。也就是说,一个节点使用了大约33%的内存,这样我就不会太担心了