マルチソケットシステムで、Linux上のZFSの下のzvolsでKVMイメージを使用することに興味があります。ZFSARCキャッシュの利点を最大化するために、NUMAノードをどのように固定する必要があるのか疑問に思っています。システム上のすべてのKVMイメージ。明らかに、すべてのメモリが1つのコントローラー上にあるように、各VMを1つのソケット/ノードに固定する必要があります。しかし、私はARCが各VMに最大の利益をもたらすようにホストを設定する方法に戸惑っています。
ホストを1つのNUMAノードに保持すると、他のノードのVMのARCへのアクセスが遅くなることは論理的に思われます。ただし、ホストがNUMAノードに分散している場合、そのパフォーマンスが低下し、ゲストのパフォーマンスが低下する可能性があります。
私が読んだことから、ホストを特定のノードに関連付けることができるかどうか、または定義上、ホストがそれらすべてを使用するかどうかさえわかりません。その場合、Linux ARC上のNUMAノードのZFSはどの程度認識されていますか?
リソース/プロセスを特定のソケットに手動で固定することは、非常に特定の状況でのみ実行する必要があります。さらに、ARC自体は、(ほとんど)予測できないアクセスパターン/ヒットを持つグローバルリソースです。
良好なパフォーマンスのために必要であることが証明されていない限り、この種の微調整は行わないことを強くお勧めします。 NUMAをまったくいじらずに、デフォルト設定でLinuxインストールを実行してみてください。また、 numastat
を使用してシステムの動作を観察してください。
さらに調整が必要な場合は、 numad
を介して自動最適化を使用してみてください。これが十分でない場合にのみ、 numactl
および/またはKVMゲストCPUピン留め)を使用して最適化してみてください。