Desejo desativar o transparent_hugepage (THP) em uma instância do CentOS 7 EC2, que é ativada por padrão:
# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
Essa configuração pode ser alterada manualmente:
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
... mas as alterações são perdidas após a reinicialização.
Tentei colocar as echo never [...]
instruções nos meus arquivos rc.local
e cloud.cfg
, mas não funcionou.
Também tentei anexar a configuração transparent_hugepage=never
à linha do kernel de /etc/grub.conf
(como explicado lá ), mas não funcionou melhor.
Então ... como posso desativar o THP no CentOS 7 em execução em uma instância do AWS EC2?
editar: título alterado ... Preciso desativar a desfragmentação THP e THP
amazon-ec2
centos7
grub
vcarel
fonte
fonte
Respostas:
A solução está sintonizada , como apontado por @ michael-hampton. A parte complicada é que o plugin vm pode apenas definir a
/sys/kernel/mm/transparent_hugepage/enabled
configuração.Para desativar a
/sys/kernel/mm/transparent_hugepage/defrag
configuração também, tive que criar um script chamado pelo perfil no início.No final, a solução completa é:
etapa 1 : Crie o diretório para armazenar o perfil personalizado:
etapa 2 : crie o perfil
/etc/tuned/custom/tuned.conf
:Observe que esse perfil é herdado do convidado virtual , que era meu perfil ativo, na verdade parecendo apropriado para o servidor virtualizado (EC2). Você pode ver o seu perfil ativo com o comando
tuned-adm active
. Se você estiver curioso, verifique o conteúdo dos perfis predefinidos em/usr/lib/tuned/
Etapa 3 : Crie o script
/etc/tuned/custom/script.sh
:Torne executável:
etapa 4 : ative o novo perfil:
Agora você deve obter:
Ele persistirá após a reinicialização.
fonte
Além de definir a linha de comando do grub, você também precisa configurar o tuned. Mas não usando as instruções às quais você vinculou, pois elas são tão cheias de erros que levaria meio dia apenas para explicar todas elas.
Crie um perfil ajustado personalizado (que chamarei
custom
) e defina o perfil. Você o baseará em um perfil existente, comovirtual-guest
se você estiver executando em uma máquina virtual (é claro que o EC2 está) outhroughput-performance
se estiver em uma máquina física.Crie o diretório para armazenar o perfil customizado:
Crie o perfil personalizado
/etc/tuned/custom/tuned.conf
, por exemplo:Agora defina o perfil:
fonte
Tente também isso
fonte
Você pode editar o arquivo /etc/rc.local e adicionar o seguinte comando a esse arquivo:
e execute
chmod +x /etc/rc.d/rc.local
para garantir que o script seja executado durante a inicialização. testado no Amazon Linux 2.fonte
Edição: a resposta acima está errada , porque os botões de página enorme transparente estão faltando sysctl no momento. Desculpe pelo barulho.
Você pode inserir os valores desejados
/etc/sysctl.conf
.Na página do manual sysctl.conf (5):
fonte