usando ksm_preload para o Apache dentro do Docker

3

Estou tentando usar o ksm_preload para o Apache dentro do Docker. O problema é que a biblioteca não é mapeada durante a execução no Docker. Fora funciona e estou vendo páginas compartilhadas / voláteis. Eu acho que o problema está em algum lugar no apache, porque outros aplicativos (como apt) em execução no mesmo contêiner com o mesmo parâmetro LD_PRELOAD mostram atividade no KSM.

Depois de executar a instalação, tentei o seguinte dentro do contêiner do Docker

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

Eu também tentei definir /etc/apache2/envvars para os processos de trabalho:

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

O processo pai obtém a biblioteca mapeada, mas os processos do worker filho não.

/ proc / pid / map_files do processo pai:

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

Sempre o seguinte resultado:

/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

A saída de depuração do LD é bastante longa link

O apache tem algum tipo de proteção contra LD_PRELOAD?

Existe alguma outra biblioteca dinâmica com prioridade mais alta sobrescrevendo os símbolos?

talvez relevante: link tentei a solução com UNSET_RTLD_DEEPBIND=1 , sem alteração

    
por Sidias-Korrado 11.08.2017 / 19:01

0 respostas