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
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 comoFALSE
por padrão, euse_large_pages
é avaliado comoFALSE
. 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 comoFALSE
. Além disso, ouse_large_pages
será avaliado comoFALSE
-
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 comoTRUE
por padrão. Além disso, ouse_large_pages
será avaliado comoONLY
É possível desativar o recurso HugePages manualmente definindouse_large_pages
comoFALSE
. -
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 comoTRUE
. Além disso, ouse_large_pages
será avaliado comoONLY
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.