Docker 内の Apache に ksm_preload を使用する

Docker 内の Apache に ksm_preload を使用する

使用しようとしていますksm_プリロードDocker 内の Apache 用。問題は、Docker 内で実行しているときにライブラリがマップされないことです。外部では機能し、共有/揮発性ページが表示されます。同じコンテナ内で同じ LD_PRELOAD パラメータを使用して実行されている他のアプリケーション (apt など) が KSM でアクティビティを示しているため、問題は Apache のどこかにあると思います。

make installを実行した後、dockerコンテナ内で次のことを試しました

LD_PRELOAD=/usr/local/share/ksm_preload/libksm_preload.so apache2ctl -k start -D FOREGROUND

/etc/apache2/envvarsワーカープロセスの設定も試しました:

export LD_DEBUG=all
export LD_PRELOAD=/usr/local/share/ksm_preload/libksm_preload.so

親プロセスはライブラリをマップしますが、子ワーカープロセスはマップしません。

親プロセスの /proc/pid/map_files:

7f2e13aef000-7f2e13af1000 -> /usr/local/share/ksm_preload/libksm_preload.so
7f2e13af1000-7f2e13cf0000 -> /usr/local/share/ksm_preload/libksm_preload.so
7f2e13cf0000-7f2e13cf1000 -> /usr/local/share/ksm_preload/libksm_preload.so

常に次の結果になります。

/sys/kernel/mm/ksm/pages_shared:0
/sys/kernel/mm/ksm/pages_sharing:0
/sys/kernel/mm/ksm/pages_to_scan:100
/sys/kernel/mm/ksm/pages_unshared:0
/sys/kernel/mm/ksm/pages_volatile:0
/sys/kernel/mm/ksm/run:1

LDデバッグ出力はかなり長いhttps://pastebin.com/KRvKHXxn

Apache には LD_PRELOAD に対する何らかの保護機能がありますか?

シンボルを上書きする優先度の高い別の動的ライブラリがあるのでしょうか?

おそらく関連あり:https://stackoverflow.com/questions/13374240/why-ld-preload-doesnt-work-for-one-of-loaded-shared-libraries 解決策を試したがUNSET_RTLD_DEEPBIND=1、変化はなかった

関連情報