Huge Pages – Como configurar

Huge Pages – Como configurar

Primeiro vamos definir o que é Huge Pages e seu conceito:

HugePages é um recurso do Linux que usa páginas de memória maiores (2MB em vez de 4KB). No Oracle, isso melhora o desempenho, porque diminui a carga de gerenciamento de memória, reduz o uso de CPU e evita que a memória seja trocada para o disco pois as páginas alocadas com HugePages são fixadas e bloqueadas na RAM.

Se for identificado que o seu sistema está utilizando swap, ou seja, usando o disco como se fosse memória, é importante verificar a configuração do swappiness e conferir em quantos por cento ele está. Uma boa prática é manter o swappiness entre 2% e 10%.

Para verificar o swappiness digite no bash:

# cat /proc/sys/vm/swapiness

O padrão deverá ser 30 (no oracle Linux)

Para alterar o valor :

1 – Edite o arquivo sysctl.conf

# vi /etc/sysctl.conf

2 – Inserir novo valor na ultima linha

vm.swappiness=10

Exemplo:

3 – Agora digite para carregar as informações

# sysctl -p

Pronto!! A parte de swappiness feito.. Voltando agora para HugePages, vamos configurar:

Primeira coisa, precisamos ter certeza que não estamos utilizando HugePages. Para tirar esta dúvida , vamos digitar no bash

# grep Huge /proc/meminfo

Caso você esteja utilizando , você deve se deparar com este tipo de informação:

Caso você não tenha, os valores de HugePages Total, Free, Rsvd e Surp deverá estar zerado.

Agora vamos calcular o valor de HugePages. Se os valores estiverem zerados, você pode usar um script fornecido pela Oracle ou simplesmente somar todas as SGAs e dividir por 2 MB. Lembrando que a soma das SGAs deve estar em MB, caso deseje dividir em megabytes.

Segue o script abaixo. Se quiser utilizá-lo, importe-o para o servidor do banco com a extensão .sh e execute. Não se esqueça de dar permissão para execução.

Ao rodar o script, temos a recomendação de vm.nr_hugepages. Exemplo:
No nosso exemplo, o valor é 1330. Com isso, vamos editar o arquivo /etc/sysctl.conf e adicionar na última linha:
vm.nr_hugepages=1330
Salve o arquivo e, no bash, digite para carregar as configurações:
#sysctl -p
Pronto! Estamos quase finalizando. Agora, basta verificar o parâmetro use_large_pages no banco de dados e garantir que esteja como TRUE. Se estiver como FALSE, será necessário alterá-lo para TRUE.
Para finalizar, reinicie o banco de dados. Após ele subir, execute novamente o comando:
#grep Huge /proc/meminfo

Os valores agora devem estar diferentes de zero.

OBS: Também podemos verificar no alert log do banco, mas deixo essa parte para a próxima.

Valeu, galera!!!

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , ,

Power Tuning
Visão geral da privacidade

Este site utiliza cookies para que possamos lhe proporcionar a melhor experiência de usuário possível. As informações dos cookies são armazenadas em seu navegador e executam funções como reconhecê-lo quando você retorna ao nosso site e ajudar nossa equipe a entender quais seções do site você considera mais interessantes e úteis.