アプリケーション ソフトウェアが madvise(MADV_MERGEABLE)
を呼び出して指示しない限り、KSMD は何もしません。 .ほとんどの場合、KSMD のサービスを使用するアプリケーション ソフトウェアを使用していません。
MADV_MERGEABLE (Linux 2.6.32 以降):
addr と length で指定された範囲のページに対して Kernel Samepage Merging (KSM) を有効にします。カーネルは、マージ可能としてマークされたユーザー メモリの領域を定期的にスキャンし、同一のコンテンツを持つページを探します。これらは、単一の書き込み保護されたページに置き換えられます (後でプロセスがページのコンテンツを更新する必要がある場合、このページは自動的にコピーされます)。 KSM は非公開の匿名ページのみをマージします (mmap(2) を参照)。
KSM 機能は、同じデータの多くのインスタンスを生成するアプリケーション (KVM などの仮想化システムなど) を対象としています。多くの処理能力を消費する可能性があります。注意して使用してください。詳細については、カーネル ソース ファイル Documentation/vm/ksm.txt を参照してください。 MADV_MERGEABLE および MADV_UNMERGEABLE 操作は、カーネルが CONFIG_KSM で構成されている場合にのみ使用できます。