18.7.8. Kernel Same-Page Merging の有効化と無効化
Kernel Same-Page Merging (KSM) は、仮想マシン (VM) 間で同一のメモリーページを共有することにより、メモリー密度を向上させます。したがって、KSM を有効にすると、仮想マシンデプロイメントのメモリー効率が向上する可能性があります。
ただし、KSM を有効にすると、CPU 使用率も増加し、ワークロードによっては全体的なパフォーマンスに悪影響が生じる可能性があります。
RHEL 9 以降では、KSM はデフォルトで無効になっています。KSM を有効にして仮想マシンパフォーマンスへの影響をテストするには、次の手順を参照してください。
前提条件
- ホストシステムへのルートアクセス。
手順
KSM を有効にします。
警告KSM を有効にすると、CPU 使用率が増大し、CPU 全体のパフォーマンスに影響を及ぼします。
ksmtunedサービスをインストールします。# {PackageManagerCommand} install ksmtunedサービスを起動します。
KSM を単一セッションの間だけ有効にするには、
systemctlユーティリティーを使用してksmおよびksmtunedサービスを開始します。# systemctl start ksm # systemctl start ksmtunedKSM を永続的に有効にするには、
systemctlユーティリティーを使用してksmサービスおよびksmtunedサービスを有効にします。# systemctl enable ksm Created symlink /etc/systemd/system/multi-user.target.wants/ksm.service/usr/lib/systemd/system/ksm.service # systemctl enable ksmtuned Created symlink /etc/systemd/system/multi-user.target.wants/ksmtuned.service /usr/lib/systemd/system/ksmtuned.service
- ホスト上の仮想マシンのパフォーマンスとリソース消費を監視して、KSM を有効にすることによる利点を評価します。具体的には、KSM による CPU 使用率の増加によってメモリーの改善が相殺されないこと、および別のパフォーマンスの問題が発生しないことを確認します。レイテンシーの影響を受けやすいワークロードでは、NUMA 間のページマージにも注意してください。
オプション: KSM によって仮想マシンのパフォーマンスが向上しない場合は、無効にします。
KSM を単一セッションの間だけ無効にするには、
systemctlユーティリティーを使用してksmおよびksmtunedサービスを停止します。# systemctl stop ksm # systemctl stop ksmtunedKSM を永続的に無効にするには、
systemctlユーティリティーを使用してksmおよびksmtunedサービスを無効にします。# systemctl disable ksm Removed /etc/systemd/system/multi-user.target.wants/ksm.service. # systemctl disable ksmtuned Removed /etc/systemd/system/multi-user.target.wants/ksmtuned.service.
KSM を無効にする前に仮想マシン間で共有されていたメモリーページは、そのまま共有されます。共有を停止するには、以下のコマンドを使用して、システムの PageKSM ページをすべて削除します。
# echo 2 > /sys/kernel/mm/ksm/run
ただし、このコマンドはメモリー使用量を増加させ、ホストまたは仮想マシンでパフォーマンスの問題を引き起こす可能性があります。