Quais são as desvantagens de desabilitar o THP e por que ele é habilitado por padrão em muitas distros?

7

Recentemente, eu e minha equipe notamos que iniciar o Redis em nossas VMs fornece o seguinte aviso: "AVISO, você tem suporte a THP habilitado em seu kernel. Isso criará problemas de latência e uso de memória com o Redis." / p>

Eu investiguei o tópico um pouco para descobrir que a maioria dos fornecedores de DB sugere (se não exigir) que você desative o THP. Apenas alguns exemplos:

Eu também notei que muitas distribuições vêm com esse recurso ativado por padrão:

  • Red Hat
  • CentOS
  • Ubuntu
  • CoreOS

Então as perguntas são:

  • por que está ativado por padrão?
  • quais poderiam ser as desvantagens / riscos de desabilitar o THP em nossas VMs de cluster (um cluster Kubernetes baseado no CoreOS, onde nós executamos muitos containers diferentes do Docker)?
por mettjus 20.03.2017 / 15:22

1 resposta

6

O THP é um recurso do Linux, ele é habilitado por padrão em alguma distribuição do Linux para aumentar o desempenho do aplicativo. mas não é recomendado por alguns fornecedores de banco de dados do os porque diminui o desempenho de seus produtos.

Dos documentos da Red-HAT (Por que o THP está ativado):

As the goal of THP is improving performance, its developers (both from the community and Red Hat) have tested and optimized THP across a wide range of systems, configurations, applications, and workloads. This allows the default settings of THP to improve the performance of most system configurations. However, THP is not recommended for database workloads.

De: Oracle Docs (Por que você deve desativar o THP?)

but unfortunately Transparent HugePages don't play well with Oracle databases and are associated with node reboots in RAC installations and performance problems on both single instance and RAC installations. As a result Oracle recommends disabling Transparent HugePages on all servers running Oracle databases

Quais poderiam ser as desvantagens / riscos de desabilitar o THP em nossas VMs de cluster?

Manter o THP ativado é um recurso de segurança para impedir o mmap ataque de inundação .

Applications however can be further optimized to take advantage of this feature, like for example they've been optimized before to avoid a flood of mmap system calls for every malloc(4k). Optimizing userland is by far not mandatory and khugepaged already can take care of long lived page allocations even for hugepage unaware applications that deals with large amounts of memory.

    
por 29.03.2017 / 12:39