0

2つの異なる同一の仮想マシンに2つのノードがあります。どちらも同一のCentOS64ビット、同量のRAM、CPUなどです。

私はこれらの2つのノードに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トランザクションは他のノードを待機します:[]

2つのノードが異なるメモリ使用量を報告するのは正常ですか?

4

1 に答える 1

0

あなたがすべきことは、テーブルの内容が同じであるかどうかを2つのノードに尋ねることです。MnesiaとErlangは一般的にゴミを収集します。したがって、実際のメモリ使用量が異なる場合があります。また、ノードの1つが現在何らかのメンテナンス作業を行っている/リーダーであるなどの可能性があることにも注意してください。これにより、メモリが少し異なります。最後に、2つのノードは、元のバイナリが保持されているサブバイナリを格納している可能性があります。ただし、複製する場合、サブバイナリは切り詰められ、他のノードにコピーされます。これはおそらく小さな不一致を説明しています。

サイズに大きな違いがない限り。つまり、1つのノードが33%多いメモリを使用するので、それほど心配する必要はありません。

于 2012-10-11T09:29:31.993 に答える