ある程度の時間が経過すると、ノードがフリーズしたように見える

一部のJVMは、オペレーティング・システム(OS)によってスワップアウトされます。

一部のJVMは、オペレーティング・システム(OS)によってスワップアウトされます。

GCInspectorからのメッセージについては、system.logをチェックしてください。GCInspectorParNewコレクターまたはConcurrentMarkSweepコレクターの時間が15秒以上かかっていることを示している場合は、JVMの一部がOSによってスワップアウトされている可能性が高いです。

DataStaxでは、スワップを完全に無効にすることを強く推奨します(sudo swapoff --all)。Cassandraには、複数のレプリカと透過的なフェイルオーバー機能が備わっているため、メモリー不足になったときはレプリカをスワップするよりもすぐに強制終了した方が望ましいとされています。こうすると、スワップのためにレイテンシーが高くなっているレプリカを引き続き使用するのではなく、機能しているレプリカにすぐにトラフィックをリダイレクトすることができます。システムのDRAMが多くても、OSはディスクのキャッシングに使用可能なDRAMを増やすために実行可能なコードをスワップアウトするため、やはりスワップによってパフォーマンスが大幅に低下します。 この変更を永続化するために、すべてのスワップ・ファイル・エントリーを/etc/fstabから削除します。

それでもスワップを使用する場合は、vm.swappiness=1を設定します。こうすると、カーネルは、最も使われていない部分をスワップアウトします。

GCInspectorが非常に長いGC時間を報告しないが、比較的短い時間の報告を頻繁に行う場合(ConcurrentMarkSweepが頻繁に数秒間要している)、JVMで非常に高いGCプレッシャーが生じており、最終的にOOMになる可能性が高くなります。「OOMエラーが発生してノードが停止する」を参照してください。