Kubernetesのメモリマネージャ機能が正式版に。NUMAサーバでCPUとメモリ割り当ての最適化による性能向上など実現
今回は「Kubernetesのメモリマネージャ機能が正式版に。NUMAサーバでCPUとメモリ割り当ての最適化による性能向上など実現」についてご紹介します。
関連ワード (今後、大規模、性能等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Kubernetes 1.32でメモリマネージャが正式版となったことが発表されました。これにより、NUMAサーバ上でコンテナ化されたアプリケーションにおいてメモリ割り当てを最適化することによる性能向上などが期待できます。
NUMAサーバの性能を引き出すメモリマネージャ
Kubernetesにおけるメモリマネージャの実装は、NUMA(Non-Uniform Memory Access)サーバ上でノードを稼働させる場合に、NUMAサーバの性能を最大限に引き出す設定が必要だったために行われました。
NUMAサーバとは、CPUとメモリのセットを高速なインターコネクトで接続することで大規模なマルチプロセッサ構成となっているサーバのことです。
このNUMAサーバの性能を最適な形で引き出すには、ノードにおける処理がCPUとセットになっているメモリにアクセスすることで行われる必要があります。あるCPUから別のCPUとセットになっているメモリにアクセスすることは可能であり、処理も正常に行われますが、その場合にはメモリアクセスのレイテンシが大きくなってしまうのです。
今回正式機能になったKubernetesのメモリマネージャ機能では、Kubernetesの「Guaranteed QoSクラス」に設定されたポッドに対して、NUMAサーバの性能を最適化できる適切なメモリ割り当てを設定できるようになります。
現時点でメモリマネージャの機能はLinux版で利用可能となっていますが、今後Windows版での実装も計画されています。