использование ksm_preload для Apache внутри Docker

использование ksm_preload для Apache внутри Docker

Я пытаюсь использоватьksm_preloadдля Apache внутри Docker. Проблема в том, что библиотека не отображается при запуске внутри Docker. Снаружи она работает, и я вижу общие/изменчивые страницы. Я думаю, проблема где-то в apache, потому что другие приложения (например, apt), работающие в том же контейнере с тем же параметром LD_PRELOAD, показывают активность в KSM.

После запуска 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, никаких изменений

Связанный контент