
Quando a memória e a troca (swap) se esgotam, o núcleo do Linux escolhe um processo e mata-o para salvar o sistema. Chama-se OOM killer (out of memory). Costuma escolher um dos maiores, e num servidor web esse é muitas vezes a base de dados. O sintoma que vê é um serviço que desaparece sem aviso e “volta” depois de reiniciado. Para confirmar, procure a marca no registo do núcleo; para resolver, descubra quem consome a memória e reduza-o, ou dê mais memória à máquina.
Confirmar que foi isto
|
|
|
|
As soluções, da mais barata à mais cara
| O que fazer | Quando serve |
| Reduzir o que corre | Desligar serviços que não usa; olhar para o que arranca com o servidor (systemctl list-unit-files --state=enabled). |
| Afinar os trabalhadores do servidor web e do PHP | Cada processo do PHP-FPM ou do Apache gasta memória; se o máximo permitido (no PHP-FPM, pm.max_children) multiplicado pelo tamanho de cada um é maior do que a memória, o servidor morre num pico. Baixe o máximo. |
| Afinar a base de dados | O MariaDB e o MySQL reservam memória para cache (no InnoDB, innodb_buffer_pool_size). Um valor pensado para uma máquina maior sufoca uma pequena. |
| Limitar um serviço | No systemd, MemoryMax= numa unidade (crie uma alteração com sudo systemctl edit nome). Um serviço descontrolado é parado antes de arrastar os outros. Nos contentores, o Docker tem a opção --memory. |
| Corrigir a causa na aplicação | Uma fuga de memória, uma consulta que carrega tudo, um plugin que ficou pesado. O OOM é só o aviso. |
| Ter swap | Dá folga para picos curtos, mas é disco, e muito mais lento. Serve de amortecedor, não de cura. Como se acrescenta: acrescentar swap a um VPS. |
| Mais memória | Quando o uso normal já não cabe. Veja os planos em servidores VPS e o que o seu serviço permite em Meu Interweb. |
| Se a base de dados foi morta a meio de uma escrita, verifique-a depois de a arrancar. No registo da base de dados procure mensagens de recuperação ou de tabelas “crashed”, e confira o site. Veja tabelas marcadas como estragadas. Uma cópia recente é o que a salva: cópias com mysqldump e pg_dump. |
| Não é a mesma coisa que o erro do PHP “Allowed memory size exhausted”. Esse é um limite do próprio PHP para um script, e o servidor continua de pé: o limite de memória do PHP. O OOM é do sistema inteiro. |
| Antes de comprar mais memória, meça. Muitos casos resolvem-se baixando um número de configuração. E se pretende correr programas pesados (Docker, vários sites, automação de browser), some o que cada um precisa, segundo a documentação deles, antes de escolher o plano. Veja também erros comuns de VPS e Cloud. |
|
O serviço morre e não percebe porquê? Cole-nos as linhas do registo do núcleo e o nome do plano, e dizemos o que se vê do nosso lado. Abrir um pedido de suporte |
|
VEJA TAMBÉM Ver o que usa CPU, memória e disco |
PRODUTO RECOMENDADO Servidor VPS com acesso root Recursos só seus, o sistema que escolher, reinstalação quando quiser. desde 7.560,00 Kz/mês (plano de 3 anos, com cupão) Ver planos |
- 0 Utilizadores acharam útil











