O que investigar
| Pergunta | O que indica |
|---|---|
| O pico coincide com alguma tarefa? | Importação, exportação, relatório ou rotina agendada pesada |
| A memória cresce até o processo reiniciar? | Processos de longa duração acumulando (filas, workers) |
| Quantos processos do PHP rodam ao mesmo tempo? | Configuração acima da capacidade da máquina |
| Houve erros de memória esgotada nos logs? | Operação que excede o limite por processo |
Causas e correções
- Carregar tudo de uma vez: processar em lotes (no Laravel, métodos como
chunkelazy) - Exportações grandes: gerar o arquivo aos poucos, em segundo plano
- Workers de fila: reiniciar periodicamente após certo número de tarefas
- Processos demais: ajustar a quantidade de processos do PHP à memória disponível
- Cache sem limite: definir expiração e tamanho
- Imagens: redimensionar imagens grandes consome muita memória; fazer em fila
Aumentar o limite resolve?
Aumentar o limite de memória do PHP pode destravar uma operação pontual, mas se o código carrega dados demais, o problema volta quando os dados crescem. E aumentar a memória da máquina sem corrigir a causa só adia a próxima queda. Veja servidor mais potente resolve?.
Se a memória estoura em importações, veja importação de planilhas trava o sistema. Investigamos consumo de recursos no nosso serviço de manutenção de sistemas PHP e Laravel.