28.12. systemd を使用した NUMA ポリシーの設定
Non-Uniform Memory Access (NUMA) システム上のアプリケーションのメモリーアクセス性能を最適化するには、systemd ユニットファイルを使用してサービスの NUMA ポリシーを設定します。
NUMA システムでは、CPU に近いメモリー (ローカルメモリー) は、別の CPU のローカルメモリー (外部メモリー) や、複数の CPU 間で共有されるメモリーよりもレイテンシーが低くなります。
Linux カーネルでは、NUMA ポリシーを使用して、カーネルがプロセス用に物理メモリーを割り当てる場所 (例: NUMA ノード) を制御します。
systemd は、サービスのメモリー割り当てポリシーを制御するためのユニットファイルオプションである NUMAPolicy および NUMAMask を提供しています。
bind などの厳密な NUMA ポリシーを設定する場合は、CPUAffinity= ユニットファイルオプションも適切に設定されていることを確認してください。
手順
NUMAPolicyユニットファイルオプションを使用して NUMA メモリーポリシーを設定します。選択したサービスに対応する
NUMAPolicyユニットファイルオプションの値を確認します。$ systemctl show --property <NUMA policy configuration option> <service name>root として、
NUMAPolicyユニットファイルオプションに必要なポリシータイプを設定します。# systemctl set-property <service name> NUMAPolicy=<value>
サービスを再起動して変更を適用します。
# systemctl restart <service name>