

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Dicas e melhores práticas para WordPress instâncias no Amazon Lightsail
<a name="amazon-lightsail-wordpress-tips-best-practices"></a>

Este guia reúne dicas práticas para manter uma WordPress instância no Amazon Lightsail rápida, estável e segura.

## Mantenha seu site seguro e atualizado
<a name="wordpress-keep-secure-and-updated"></a>

### Mantenha WordPress, temas e plug-ins atualizados
<a name="wordpress-keep-updated"></a>
+ Aplique atualizações de WordPress núcleo, tema e plug-in imediatamente. As atualizações geralmente incluem correções de desempenho e segurança. Para obter mais informações, consulte [Mantenha as instâncias e os contêineres do Lightsail seguros](amazon-lightsail-update-management.md) com o gerenciamento de atualizações.
+ Remova plug-ins e temas que você não está usando. Os plug-ins inativos ainda aumentam a sobrecarga de manutenção e a superfície de segurança, e plug-ins mal escritos são uma causa frequente do alto uso de memória.
+ Teste as principais atualizações em uma cópia instantânea da sua instância antes de aplicá-las ao seu site ativo.

### Faça backup antes de fazer alterações
<a name="wordpress-back-up-before-changes"></a>

Antes de editar os arquivos de configuração ou instalar plug-ins, tire um instantâneo da sua instância para que você possa restaurar facilmente o aplicativo a partir do instantâneo, caso algo dê errado:
+ Crie um instantâneo manual a partir do console Lightsail ou
+ Ative os instantâneos automáticos.

[Para obter instruções, consulte Fazer [backup de instâncias do Linux/Unix Lightsail com](lightsail-how-to-create-a-snapshot-of-your-instance.md) instantâneos e Configurar instantâneos automáticos.](amazon-lightsail-configuring-automatic-snapshots.md)

## Monitoramento e solução de problemas
<a name="wordpress-monitoring-and-troubleshooting"></a>

### Como sei se minha instância está ficando sem memória?
<a name="wordpress-detect-out-of-memory"></a>

Os sintomas comuns incluem:
+ Seu site exibe **“Erro ao estabelecer uma conexão com o banco de dados”** (tanto no site público quanto no painel de administração). Isso geralmente significa que o MariaDB parou.
+ O site carrega lentamente ou atinge o tempo limite sob tráfego modesto.

Para confirmar, conecte-se à sua instância via SSH e verifique o uso atual da memória:

```
free -m
```

Veja a `available` coluna abaixo`Mem:`. Essa é a quantidade de memória que sua instância ainda pode usar. Se `available` estiver abaixo de **50 MB**, sua instância está sob forte pressão de memória e corre o risco de sofrer OOM-killing processos.

Você também pode verificar se o kernel encerrou um processo por falta de memória (uma “eliminação de OOM”):

```
sudo dmesg | grep -i "out of memory"
```

Se você ver entradas mencionando `mariadbd` ou`mysqld`, seu banco de dados está sendo encerrado sob pressão de memória, e as etapas em [Melhorar o desempenho da memória](#wordpress-improve-memory-performance) devem ajudar.

### Minha instância já tem ajuste automático de memória?
<a name="wordpress-automatic-memory-tuning"></a>

O novo blueprint do WordPress Lightsail inclui um serviço que detecta o tamanho da memória da instância e aplica automaticamente o swap, o MariaDB e as configurações descritas neste guia sempre que a instância é iniciada, Apache/PHP inclusive depois de iniciá-la ou reinicializá-la. Para verificar se sua instância o tem, conecte-se via SSH e execute:

```
systemctl status lightsail-memory-config
```

Se o serviço existir, sua instância já gerencia essas configurações automaticamente e você não precisa aplicá-las manualmente. Se o comando informar que a unidade não pôde ser encontrada, siga as etapas em [Melhorar o desempenho da memória](#wordpress-improve-memory-performance).

## Otimizar a performance
<a name="wordpress-optimize-performance"></a>

### Escolha o pacote certo para sua carga de trabalho
<a name="wordpress-choose-bundle"></a>

A maneira mais eficaz de melhorar o WordPress desempenho é executar em um pacote de instâncias com memória suficiente para sua carga de trabalho. WordPress em si é leve; no entanto, plug-ins, temas e o banco de dados podem consumir memória significativa.
+ **512 MB — 1 GB de RAM (pacotes de microinstância e nano do Lightsail): adequado para blogs pequenos e** sites de baixo tráfego com um conjunto mínimo de plug-ins. Essas instâncias têm maior probabilidade de sofrer pressão de memória e se beneficiam mais com o ajuste abaixo.
+ **2 GB de RAM ou mais:** recomendado se você executa construtores de páginas (como Elementor ou Divi) ou muitos WooCommerce plug-ins ativos.

À medida que seu site cresce e precisa de mais recursos, você pode fazer o upgrade para um pacote maior [criando um snapshot e lançando uma nova instância maior a partir dele](how-to-create-larger-instance-from-snapshot-using-console.md).

### Melhore o desempenho da memória
<a name="wordpress-improve-memory-performance"></a>

**nota**  
O blueprint mais recente do WordPress Lightsail aplica automaticamente o ajuste de memória com reconhecimento de tamanho sempre que a instância é iniciada. Portanto, a maioria das etapas manuais nesta seção são feitas para você se você estiver criando uma nova instância do Lightsail. WordPress

Se seu site exibir “Erro ao estabelecer uma conexão com o banco de dados” quando você (ou seus visitantes) tentarem carregar uma página, ou se você ver mensagens de registro indicando que o MariaDB foi eliminado devido à falta de memória (`Out of memory: Killed process ... (mariadbd)`como no registro do sistema), é provável que sua instância esteja ficando sem memória. Em instâncias menores, o kernel Linux pode encerrar o processo do banco de dados MariaDB (uma “eliminação de OOM”) quando a memória estiver esgotada.

As três etapas abaixo reduzem a pressão da memória adicionando espaço de troca e limitando a quantidade de memória que o banco de dados e o servidor web podem usar. Cada etapa ajuda sozinha, então você pode aplicar somente as necessárias ou todas as três para obter o melhor efeito. Antes de começar, verifique se você tem o snapshot mais recente da sua instância. Consulte Fazer [backup antes de fazer alterações](#wordpress-back-up-before-changes) para obter mais detalhes.

**Importante**  
Essas etapas exigem conectar-se à sua instância via SSH e executar comandos com`sudo`. Reiniciar o banco de dados e o servidor web interrompe brevemente seu site (alguns segundos); portanto, faça as alterações durante uma janela de baixo tráfego.

Para se conectar à sua instância, use o cliente SSH baseado em navegador no console do Lightsail ou consulte [Conecte-se à sua instância Linux ou Unix](lightsail-how-to-connect-to-your-instance-virtual-private-server.md).

#### Etapa 1: adicionar um arquivo de troca
<a name="wordpress-add-swap-file"></a>

Um arquivo de troca dá ao sistema operacional espaço para transferir memória inativa para o disco, o que ajuda a evitar falhas de falta de memória em instâncias com menos de 1,5 GB de RAM. Recomendamos adicionar swap em pacotes nano ou micro, e geralmente é desnecessário em pacotes maiores.

Primeiro, verifique se o swap já está ativo:

```
cat /proc/swaps
```

Se a única linha impressa for o cabeçalho (nenhuma entrada de troca listada), nenhuma troca será configurada:

```
Filename                Type        Size       Used    Priority
```

Crie um arquivo de troca de 650 MB:

```
sudo dd if=/dev/zero of=/mnt/.lightsail.swap bs=1K count=665600 status=progress
sudo chmod 600 /mnt/.lightsail.swap
sudo mkswap /mnt/.lightsail.swap
sudo swapon /mnt/.lightsail.swap
```

Para fazer com que o arquivo de troca persista nas reinicializações, adicione-o a: `/etc/fstab`

```
echo '/mnt/.lightsail.swap none swap sw 0 0' | sudo tee -a /etc/fstab
```

Confirme se a troca agora está ativa:

```
cat /proc/swaps
```

O arquivo de troca agora aparece na saída:

```
Filename                Type        Size       Used    Priority
/mnt/.lightsail.swap    file        665596     0       -2
```

#### Etapa 2: ajustar o banco de dados MariaDB
<a name="wordpress-tune-mariadb"></a>

`innodb_buffer_pool_size`é o maior consumidor único de memória no MariaDB. Se o tamanho padrão do pool for muito grande em comparação com a memória da instância, isso poderá contribuir para falhas de falta de memória.

Encontre o recomendado `innodb_buffer_pool_size` para sua instância na [tabela de configuração recomendada](#wordpress-recommended-memory-values) e crie um arquivo de configuração dedicado com esse valor (substitua `16M` no exemplo pelo seu valor):

```
sudo tee /etc/mysql/mariadb.conf.d/90-lightsail-memory.cnf > /dev/null <<'EOF'
[mysqld]
innodb_buffer_pool_size = 16M
EOF
```

Para executar a alteração, execute o seguinte comando que reinicia o banco de dados:

```
sudo systemctl restart mariadb
```

#### Etapa 3: ajustar o Apache e o PHP
<a name="wordpress-tune-apache-php"></a>

O Apache é o servidor web que gerencia as solicitações recebidas em seu WordPress site. Por padrão, ele permite até 150 processos de trabalho simultâneos (`MaxRequestWorkers`). Em uma instância pequena, cada trabalhador PHP pode usar dezenas de megabytes, o que pode esgotar a memória sob carga. Para limitar o número de trabalhadores correspondentes à sua instância e limitar a quantidade de memória que uma única solicitação PHP pode usar, defina os `mpm_prefork` limites do Apache (os valores mostrados são para uma microinstância; verifique a [tabela de configuração recomendada](#wordpress-recommended-memory-values) para sua instância):

```
sudo tee /etc/apache2/mods-available/mpm_prefork.conf > /dev/null <<'EOF'
<IfModule mpm_prefork_module>
    StartServers            1
    MinSpareServers         1
    MaxSpareServers         3
    MaxRequestWorkers       5
    MaxConnectionsPerChild  5000
</IfModule>
EOF
```

Defina o PHP `memory_limit` (512 MB é um limite superior seguro para todos os tamanhos). Primeiro detecte sua versão do PHP e, em seguida, grave o arquivo de configuração:

```
PHP_VERSION=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
sudo mkdir -p /etc/php/${PHP_VERSION}/apache2/conf.d
sudo tee /etc/php/${PHP_VERSION}/apache2/conf.d/90-lightsail-memory.ini > /dev/null <<'EOF'
memory_limit = 512M
EOF
```

Aplique as duas alterações reiniciando o Apache:

```
sudo systemctl restart apache2
```

#### Valores recomendados por memória de instância
<a name="wordpress-recommended-memory-values"></a>

Use os valores abaixo com base na RAM total da sua instância. Para verificar a memória da sua instância, execute `free -m` e veja a `total` coluna ou consulte o tamanho do pacote no console do Lightsail.


**Configuração de memória recomendada por instância RAM**  

|  Memória de instância (RAM)  |  MariaDB `innodb_buffer_pool_size`  |  Apache `MaxRequestWorkers`  |  PHP `memory_limit`  |  Arquivo de troca  | 
| --- | --- | --- | --- | --- | 
| Até \~1,5 GB | 16M | 5 | 512 M | Sim (650 MB) | 
| \~1,5—3 GB | 256 M | 10 | 512 M | Não | 
| \~3—6 GB | 256 M | 25 | 512 M | Não | 
| \~ 6—13 GB | 2048M | 50 | 512 M | Não | 
| \~ 13—26 GB | 2048M | 125 | 512 M | Não | 
| Mais de \~26 GB | 4096 M | 250 | 512 M | Não | 

### Use o armazenamento em cache para reduzir a carga
<a name="wordpress-use-caching"></a>

O armazenamento em cache reduz a frequência com WordPress que é necessário consultar o banco de dados e executar o PHP, o que reduz o uso da CPU e da memória:
+ **Cache de página:** instale um plug-in de cache, como o W3 Total Cache ou o WP Super Cache, para fornecer cópias estáticas de suas páginas.
+ **Cache de objetos:** se seu site tem muitos usuários conectados, executa ou usa conteúdo dinâmico que muda com frequência (como fóruns ou áreas de associação) WooCommerce, um plug-in de cache de objetos (como [Redis Object Cache](https://wordpress.org/plugins/redis-cache/) ou APCu-based caches) armazena os resultados de consultas usados com frequência na memória e reduz as pesquisas repetidas no banco de dados.
+ **Uma rede de entrega de conteúdo (CDN): transfira** ativos estáticos (imagens, CSS JavaScript) para uma CDN, como a [Lightsail Distribution](amazon-lightsail-creating-content-delivery-network-distribution.md), para que não sejam atendidos pela sua instância.