Ir para o conteúdo

Como configuro o HugePages na minha instância do Linux do Amazon EC2?

3 minuto de leitura
0

Quero configurar o HugePages na minha instância Linux do Amazon Elastic Compute Cloud (Amazon EC2).

Resolução

Observação: é uma prática recomendada configurar o HugePages em um ambiente de teste e tomar o desempenho como referência antes de implantar o HugePages na produção. O tamanho do HugePage só pode ser de 2 MB ou 1 GB em sistemas x86_64. Para obter mais informações sobre o HugePages, consulte Configuring HugePages on Linux (Configurando o HugePages no Linux) no site da Oracle.

Pré-requisitos: para verificar se sua aplicação ou banco de dados oferece suporte ao HugePages, consulte seu fornecedor. Além disso, para descobrir a quantidade de memória disponível, execute o seguinte comando para verificar a memória total da instância do EC2:

free -m

Para configurar o HugePages em sua instância Linux, conclua as seguintes etapas:

  1. Execute o comando a seguir para verificar se o seu kernel não está com o HugePages ativado:

    sudo cat /proc/sys/vm/nr_hugepages

    Se a saída do comando for 0, o HugePages não está ativado.

  2. Para calcular o número de HugePages que você precisa, use a seguinte fórmula:<br id=hardline_break/> Número de HugePages = Memória necessária / Tamanho do HugePage<br id=hardline_break/> Observação: arredonde o resultado para garantir que você crie páginas suficientes.

  3. Execute o comando a seguir para ativar o HugePages e definir o valor do parâmetro do kernel:

    sudo sysctl -w vm.nr_hugepages=2048

    Observação: substitua 2048 pelo número de HugePages que você calculou.<br id=hardline_break/> Exemplo de saída:

    vm.nr_hugepages = 2048
  4. Para verificar se o sistema aloca HugePages após a reinicialização, adicione a seguinte entrada ao arquivo /etc/sysctl.conf:

    sudo echo "vm.nr_hugepages=2048" >> /etc/sysctl.conf

    Observação: substitua 2048 pelo número de HugePages que você calculou.

  5. Para verificar suas alterações, execute o seguinte comando:

    sudo cat /etc/sysctl.conf

    Na saída do comando, verifique se há um valor para vm.nr_hugepages.<br id=hardline_break/> Exemplo de saída:

    # sudo cat /etc/sysctl.conf
    # sysctl settings are defined through files in
    # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
    #
    # Vendors settings live in /usr/lib/sysctl.d/.
    # To override a whole file, create a new file with the same in
    # /etc/sysctl.d/ and put new settings there. To override
    # only specific settings, add a file with a lexically later
    # name in /etc/sysctl.d/ and put new settings there.
    #
    # For more information, see sysctl.conf(5) and sysctl.d(5).
    vm.zone_reclaim_mode=1
    vm.nr_hugepages=2048
  6. Reinicialize sua instância.

  7. Execute novamente o comando a seguir para verificar o valor e a configuração do HugePages:

    sudo cat /proc/sys/vm/nr_hugepages

    Se a saída for o número de HugePages que você calculou, então o HugePages está ativado.<br id=hardline_break/> Exemplo de saída:

    # sudo cat /proc/sys/vm/nr_hugepages
    2048
  8. Para verificar as HugePages disponíveis em /proc/meminfo, execute o seguinte comando:

    sudo grep Huge /proc/meminfo

    Exemplo de saída:

    # sudo grep Huge /proc/meminfo
    HugePages_Total:    2048
    HugePages_Free:     2048
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB

    Para obter definições de cada valor do HugePages, consulte HugePages em kernel.org.

Para desativar o HugePages, conclua as seguintes etapas:

  1. Execute o seguinte comando para redefinir nr_hugepages para 0:

    sudo sysctl -w vm.nr_hugepages=0
  2. Remova a seguinte entrada de sysctl.conf:

    sudo echo "vm.nr_hugepages=2048" >> /etc/sysctl.conf
  3. Reinicialize sua instância.

AWS OFICIALAtualizada há 8 meses