Lidar com o erro php out of memory

1

Eu tenho um site baseado no Drupal em um vserver pequeno e relativo (512MB de RAM). Recentemente, o site começa a retornar php de mensagens de memória como esta:

Fatal error: Out of memory (allocated 17039360) (tried to allocate 77824 bytes) in /home/...

Todos os parâmetros de limite de memória do php.ini estão definidos como off (-1).

Provavelmente o site ganhou complexidade, conteúdo, etc. Mas não consigo interpretar bem essa mensagem: Isso significa que toda a requisição alocou 17MB (?) agora e não pode obter mais 7KB (?) do sistema operacional. O servidor da web gastou toda a memória ou o sistema operacional não tem mais memória para alocar?

Não estou certo se a sobrecarga de memória está vindo do servidor web ou de outro serviço, porque quando recebo a mensagem fora de memória não consigo entrar no servidor com o ssh. Depois de um tempo tudo corre bem novamente.

    
por PeterMmm 16.12.2012 / 12:55

3 respostas

1

No php.ini defina o seguinte,

memory_limit = 100M
post_max_size = 100M

Além disso, vale a pena observar se você está enviando uma imagem via biblioteca de envio do GD, então você está enviando uma imagem que será descompactada na memória. Assim, por exemplo, se o tamanho de um arquivo de 3000 x 3000 for o tamanho real, se o uso do GD for:

largura * altura * profundidade de bits, por exemplo, 3000 * 3000 * 32 = 288000000 bits = 34 MB

Também vale a pena mencionar que 512 mb nos dias de hoje para qualquer compilação do Linux é uma quantidade baixa para um LAMP, mesmo que o site seja pequeno e tenha apenas alguns visitantes por dia. o upload pode ser um problema. Muitos VPS desativam o SWAP, pois os proprietários do VPS não querem gravações de discos CONSTANT que diminuam os outros VPSs (Disks cause Lag em VM Servers com SWAP ativado).

Portanto, as alterações são o arquivo é simplesmente grande e você está ficando sem memória, supondo que você esteja usando um bom provedor vps você deve ser capaz de ampliar a memória para 1gb e ver se ele ainda recupera esse erro.

    
por 17.12.2012 / 01:09
1

Você adicionou algum novo módulo ao site? Pode ser um vazamento de memória em um script ou loop infinito. Mas eles normalmente geram alto uso da CPU.

Você deve considerar a instalação do xdebug ( link ) para obter erros detalhados sobre o aplicativo para descobrir a área problemática. Isso é usado principalmente pelos desenvolvedores.

    
por 17.12.2012 / 01:21
1

Encontrou uma possível duplicação em Stackoverflow e sua resposta

Você já tentou matar os tópicos anteriores do apache?

    
por 17.12.2012 / 05:24