View a markdown version of this page

Dicas e melhores práticas para WordPress instâncias no Amazon Lightsail - Amazon Lightsail

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

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

Mantenha WordPress, temas e plug-ins atualizados

  • 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 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

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 instantâneos e Configurar instantâneos automáticos.

Monitoramento e solução de problemas

Como sei se minha instância está ficando sem memória?

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 abaixoMem:. 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 oumysqld, seu banco de dados está sendo encerrado sob pressão de memória, e as etapas em Melhorar o desempenho da memória devem ajudar.

Minha instância já tem ajuste automático de memória?

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.

Otimizar a performance

Escolha o pacote certo para sua carga de trabalho

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.

Melhore o desempenho da memória

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 para obter mais detalhes.

Importante

Essas etapas exigem conectar-se à sua instância via SSH e executar comandos comsudo. 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.

Etapa 1: adicionar um arquivo de troca

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

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

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

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.

Use o armazenamento em cache para reduzir a carga

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 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, para que não sejam atendidos pela sua instância.