17.8. メモリーページサイズの設定
システム管理者は、メモリーページサイズを設定することにより、ワークロード要件に合わせてより効率的なメモリー管理を特定のノードに実装できます。Node Tuning Operator は、パフォーマンスプロファイルを使用して、huge page とカーネルページサイズを設定する方法を提供します。
17.8.1. カーネルページサイズの設定 リンクのコピーリンクがクリップボードにコピーされました!
特定のノードのカーネルページサイズを設定するには、パフォーマンスプロファイルの kernelPageSize 仕様を使用します。メモリーを大量に消費する高パフォーマンスのワークロードには、大きなカーネルページサイズを指定してください。
x86_64 または AMD64 アーキテクチャーのノードの場合、kernelPageSize 仕様には 4k のみを指定できます。AArch64 アーキテクチャーのノードの場合、kernelPageSize 仕様には 4k または 64k を指定できます。64k オプションを使用するには、リアルタイムカーネルを無効にする必要があります。デフォルト値は 4k です。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 -
OpenShift CLI (
oc) がインストールされている。
手順
PerformanceProfileリソースを定義する YAML ファイルを作成して、カーネルページサイズを設定するノードを対象とするパフォーマンスプロファイルを作成します。pp-kernel-pages.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow パフォーマンスプロファイルをクラスターに適用します。
oc create -f pp-kernel-pages.yaml
$ oc create -f pp-kernel-pages.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
performanceprofile.performance.openshift.io/example-performance-profile created
performanceprofile.performance.openshift.io/example-performance-profile createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、パフォーマンスプロファイルを適用したノードでデバッグセッションを開始します。
oc debug node/<node_name>
$ oc debug node/<node_name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<node_name>は、パフォーマンスプロファイルを適用したノードの名前に置き換えます。
次のコマンドを実行して、カーネルページサイズがパフォーマンスプロファイルで指定した値に設定されていることを確認します。
getconf PAGESIZE
$ getconf PAGESIZECopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
65536
65536Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.8.2. Huge Page の設定 リンクのコピーリンクがクリップボードにコピーされました!
ノードは、OpenShift Container Platform クラスターで使用される Huge Page を事前に割り当てる必要があります。Node Tuning Operator を使用し、特定のノードで Huge Page を割り当てます。
OpenShift Container Platform は、Huge Page を作成し、割り当てる方法を提供します。Node Tuning Operator は、パフォーマンスプロファイルを使用して、これをより簡単に行う方法を提供します。
たとえば、パフォーマンスプロファイルの hugepages pages セクションで、size、count、およびオプションで node の複数のブロックを指定できます。
- 1
nodeは、Huge Page が割り当てられる NUMA ノードです。nodeを省略すると、ページはすべての NUMA ノード間で均等に分散されます。
更新が完了したことを示す関連するマシン設定プールのステータスを待機します。
これらは、Huge Page を割り当てるのに必要な唯一の設定手順です。
検証
設定を確認するには、ノード上の
/proc/meminfoファイルを参照します。oc debug node/ip-10-0-141-105.ec2.internal
$ oc debug node/ip-10-0-141-105.ec2.internalCopy to Clipboard Copied! Toggle word wrap Toggle overflow grep -i huge /proc/meminfo
# grep -i huge /proc/meminfoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規サイズを報告するには、
oc describeを使用します。oc describe node worker-0.ocp4poc.example.com | grep -i huge
$ oc describe node worker-0.ocp4poc.example.com | grep -i hugeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
hugepages-1g=true hugepages-###: ### hugepages-###: ###
hugepages-1g=true hugepages-###: ### hugepages-###: ###Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.8.3. 複数の Huge Page サイズの割り当て リンクのコピーリンクがクリップボードにコピーされました!
同じコンテナーで異なるサイズの Huge Page を要求できます。これにより、Huge Page サイズのニーズの異なる複数のコンテナーで構成されるより複雑な Pod を定義できます。
たとえば、サイズ 1G と 2M を定義でき、Node Tuning Operator は以下に示すようにノード上に両方のサイズを設定します。