

# Ativar o HugePages para uma instância do RDS para Oracle
<a name="Oracle.Concepts.HugePages"></a>

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](https://docs.oracle.com/database/121/UNXAR/appi_vlm.htm#UNXAR400) 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](Concepts.DBInstanceClass.Summary.md). 

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](USER_WorkingWithParamGroups.md). 

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](USER_RebootInstance.md). 

**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. 

```
1. memory_target            = 0
2. memory_max_target        = 0
3. pga_aggregate_target     = {DBInstanceClassMemory*1/8}
4. sga_target               = {DBInstanceClassMemory*3/4}
5. sga_max_size             = {DBInstanceClassMemory*3/4}
6. use_large_pages          = ONLY
```

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

```
1. memory_target            = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
2. memory_max_target        = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
3. pga_aggregate_target     = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0)
4. sga_target               = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
5. sga_max_size             = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
6. 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.

```
1. memory_target           = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
2. memory_max_target       = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
3. pga_aggregate_target    = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0)
4. sga_target              = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
5. sga_max_size            = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
6. 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](USER_Monitoring.OS.md). 