Ativar o HugePages para uma instância do RDS para Oracle - Amazon Relational Database Service

Ativar o HugePages para uma instância do RDS para Oracle

O Amazon RDS para Oracle é compatível com HugePages do kernel do Linux para aumentar a escalabilidade do banco de dados. O uso de HugePages resulta em tabelas de página menores e menos tempo de CPU gasto no gerenciamento de memória, aumentando a performance de instâncias de banco de dados grandes. Para obter mais informações, consulte Visão geral sobre HugePages na documentação da Oracle.

Você pode usar HugePages com todas as versões e edições do RDS para Oracle compatíveis.

O parâmetro use_large_pages controla se o recurso HugePages permanece ativado para uma instância de banco de dados. As configurações possíveis desse parâmetro são ONLY, FALSE e {DBInstanceClassHugePagesDefault}. O parâmetro use_large_pages é definido como {DBInstanceClassHugePagesDefault} no parameter group de banco de dados padrão para Oracle.

Para controlar se o recurso HugePages permanece ativado para uma instância de banco de dados automaticamente, você pode usar a variável de fórmula DBInstanceClassHugePagesDefault em grupos de parâmetros. O valor é determinado da seguinte forma:

  • Para as classes de instância do banco de dados mencionadas na tabela a seguir, DBInstanceClassHugePagesDefault sempre é avaliado como FALSE por padrão, e use_large_pages é avaliado como FALSE. Será possível ativar o recurso HugePages manualmente para essas classes de instância de banco de dados se estas tiverem pelo menos 14 GiB de memória.

  • Para classes de instância de banco de dados não mencionadas na tabela a seguir, se a classe tiver menos de 14 GiB de memória, DBInstanceClassHugePagesDefault sempre será avaliado como FALSE. Além disso, o use_large_pages será avaliado como FALSE

  • Para classes de instância de banco de dados não mencionadas na tabela a seguir, se a classe da instância tiver pelo menos 14 GiB de memória e menos de 100 GiB de memória, DBInstanceClassHugePagesDefault será avaliado como TRUE por padrão. Além disso, o use_large_pages será avaliado como ONLY É possível desativar o recurso HugePages manualmente definindo use_large_pages como FALSE.

  • Para classes de instância de banco de dados não mencionadas na tabela abaixo, se a classe da instância tiver pelo menos 100 GiB de memória, DBInstanceClassHugePagesDefault sempre é avaliado como TRUE. Além disso, o use_large_pages será avaliado como ONLY e o recurso HugePages não pode ser desabilitado.

O recurso HugePages não é ativado por padrão para as classes de instância de banco de dados a seguir.

Família de classe de instância de banco de dados Classes de instância de banco de dados com o recurso HugePages não ativado por padrão

db.m5

db.m5.large

db.m4

db.m4.large, db.m4.xlarge, db.m4.2xlarge, db.m4.4xlarge, db.m4.10xlarge

db.t3

db.t3.micro, db.t3.small, db.t3.medium, db.t3.large

Para mais informações sobre classes de instância de banco de dados, consulte Especificações de hardware para classes de instância de banco de dados .

Para ativar o recurso HugePages para instâncias de banco de dados novas ou existentes manualmente, defina o parâmetro use_large_pages como ONLY. Não é possível usar HugePages com o Oracle Automatic Memory Management (AMM). Se você definir o parâmetro use_large_pages como ONLY, também deverá definir memory_target e memory_max_target como 0. Para obter mais informações sobre como definir parâmetros de banco de dados para a sua instância de banco de dados, consulte Grupos de parâmetros para Amazon RDS.

Também é possível definir os parâmetros sga_target, sga_max_size e pga_aggregate_target. Quando você definir os parâmetros de memória da área global do sistema (SGA) e da área global do programa (PGA), adicione os valores juntos. Subtraia esse total da sua memória de instância disponível (DBInstanceClassMemory) para determinar a memória livre além da alocação de HugePages. Você deve deixar pelo menos 2 GiB de memória livre ou 10% da memória total da instância disponível, o que for menor.

Depois de configurar seus parâmetros, você deverá reiniciar sua instância de banco de dados para que as alterações entrem em vigor. Para obter mais informações, consulte Reinicializar uma instância de banco de dados .

nota

A instância de banco de dados Oracle adiará as alterações nos parâmetros de inicialização relacionados ao SGA até que você reinicialize a instância sem failover. No console do Amazon RDS, escolha Reinicializar, mas não escolha Reinicializar com failover. Na AWS CLI, chame o comando reboot-db-instance com o parâmetro --no-force-failover. A instância de banco de dados não processa os parâmetros relacionados ao SGA durante o failover ou durante outras operações de manutenção que fazem com que a instância seja reiniciada.

Essa é uma configuração de parâmetro de exemplo de HugePages que permite páginas enormes manualmente. Você deve definir os valores para atender às suas necessidades.

memory_target = 0 memory_max_target = 0 pga_aggregate_target = {DBInstanceClassMemory*1/8} sga_target = {DBInstanceClassMemory*3/4} sga_max_size = {DBInstanceClassMemory*3/4} use_large_pages = ONLY

Suponhamos que os valores de parâmetros estejam definidos em um parameter group.

memory_target = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) memory_max_target = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) pga_aggregate_target = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0) sga_target = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0) sga_max_size = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0) use_large_pages = {DBInstanceClassHugePagesDefault}

O grupo de parâmetros é usado por uma classe de instância de banco de dados db.r4 com menos de 100 GiB de memória. Com essas configurações de parâmetro e use_large_pages definido como {DBInstanceClassHugePagesDefault}, o recurso HugePages permanece ativado para a instância db.r4.

Considere outro exemplo com os valores de parâmetros a seguir definidos em um parameter group.

memory_target = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) memory_max_target = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4}) pga_aggregate_target = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0) sga_target = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0) sga_max_size = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0) use_large_pages = FALSE

O grupo de parâmetros é usado por uma classe de instância de banco de dados db.r4 e por uma classe de instância de banco de dados db.r5, as duas com menos de 100 GiB de memória. Com essas configurações de parâmetro, o HugePages é desativado nas instâncias db.r4 e db.r5.

nota

Caso esse grupo de parâmetros seja usado por uma classe de instância de banco de dados db.r4 ou por uma classe de instância de banco de dados db.r5 com pelo menos 100 GiB de memória, a configuração de FALSE para use_large_pages será substituída e definida como ONLY. Nesse caso, uma notificação do cliente em relação à substituição é enviada.

Depois que o recurso HugePages estiver habilitado na instância de banco de dados, você poderá visualizar informações sobre o recurso HugePages habilitando o monitoramento avançado. Para obter mais informações, consulte Monitorar métricas do SO com o monitoramento avançado.