27.2. systemd を使用した NUMA ポリシーの設定
Non-Uniform Memory Access (NUMA) は、コンピューターメモリーのサブシステム設計で、この設計ではメモリーのアクセス時間は、プロセッサーからの物理メモリーの場所により異なります。
CPU に近いメモリーは、別の CPU のローカルにあるメモリーや、一連の CPU 間で共有されているメモリーと比べ、レイテンシーが低くなっています (外部メモリー)。
Linux カーネルでは、NUMA ポリシーを使用して、カーネルがプロセス用に物理メモリーを割り当てる場所 (例: NUMA ノード) を制御します。
systemd は、サービスのメモリー割り当てポリシーを制御するためのユニットファイルオプション NUMAPolicy および NUMAMask を提供します。
手順
NUMAPolicy ユニットファイルオプションで NUMA メモリーポリシーを設定するには以下を実行します。
選択したサービスで
NUMAPolicyユニットファイルオプションの値を確認します。systemctl show --property <NUMA policy configuration option> <service name>
$ systemctl show --property <NUMA policy configuration option> <service name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow root として、
NUMAPolicyユニットファイルオプションに必要なポリシータイプを設定します。systemctl set-property <service name> NUMAPolicy=<value>
# systemctl set-property <service name> NUMAPolicy=<value>Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを再起動して変更を適用します。
systemctl restart <service name>
# systemctl restart <service name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
[Manager] 設定オプションを使用してグローバルな NUMAPolicy を設定するには、以下を実行します。
-
/etc/systemd/system.confファイルで [Manager] セクションにあるNUMAPolicyオプションを検索します。 - ポリシータイプを編集してファイルを保存します。
systemd設定をリロードします。systemd daemon-reload
# systemd daemon-reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow - サーバーを再起動します。
bind などの厳密な NUMA ポリシーを設定する場合は、CPUAffinity= ユニットファイルオプションも適切に設定されていることを確認してください。