Problema de Memoria PHP [RESOLVIDO]

1. Problema de Memoria PHP [RESOLVIDO]

DuvidasLinux
DuvidasLinuxRS

(usa PCLinuxOS)

Enviado em 25/08/2021 - 16:44h

Boa tarde pessoal.
Comecei a atender uma empresa que conta com um sistema em PHP.
Basicamente esse sistema reuni documentos em PDF.
O problema acontece quando tento abrir uma serie de PDFs ou, um em especifico que é o mais "pesado" com mais de 70 paginas.

Analisando os logs, me deparei com essas mensagens:

PHP Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 4096 bytes) in /var/www/html/vendor/cakephp/cakephp/src/ORM/Table.php on line 3099

PHP Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 4096 bytes) in /var/www/html/vendor/laminas/laminas-zendframework-bridge/src/Autoloader.php on line 98


Pesquisando a respeito cheguei ao arquivo PHP.INI e sua "limitação de memoria".
Estava configurado para 128M.
Aumentei para 256M mas o problema ainda ocorre.

No erro em si informa que excedeu o tamanho de 2MB. Mas eis a questao que preciso de ajuda...
Onde encontro essa limitação?
Ou seria algum outro problema ainda?
Alguem conseguiria me ajudar com essas breves informações?


  


2. Re: Problema de Memoria PHP

Remington Santos
remingtonsb

(usa Red Hat)

Enviado em 25/08/2021 - 17:23h

Olá,

Verifique se a limitação de memória não está nos seus próprios arquivos:

/var/www/html/vendor/cakephp/cakephp/src/ORM/Table.php
/var/www/html/vendor/laminas/laminas-zendframework-bridge/src/Autoloader.php

Procure por alguma linha nos arquivos com a seguinte entrada:

<?php ini_set("memory_limit"," AQUI CONFIGURE A QUANTIDADE DE MEMORIA ");?>

ex:

<?php ini_set("memory_limit","256M");?>

Caso seja possível, anexe aqui o trecho do seu php.ini.

Artigo que pode ajudar:
https://www.groovypost.com/howto/howto/how-to-solve-php-fatal-error-allowed-memory-size-of-8388608-b...

Att







3. Re: Problema de Memoria PHP

Buckminster
Buckminster

(usa Debian)

Enviado em 25/08/2021 - 17:49h

Para tirar esse erro basta adicionar essa linha antes da(s) linha(s) que estão acusando erro.
ini_set('memory_limit', '-1');
Ou colocar -1 em memory_limit (-1 desabilita o limite), mas não é uma boa prática, como se diz, e pode (e dará) problemas futuros.

Tu tem que descobrir porque esse uso todo de memória.
Esse uso todo de memória está me parecendo um loop que saiu do controle.

Tu aumentou o memory_limit=128M para 256 e isso pode ter agravado o problema.

memory_limit
"Define a quantidade máxima de memória em bytes que um script pode alocar. Isto ajuda a prevenir que scripts mal escritos consumam toda a memória disponível no servidor. Note que para que não haja limite de memória, esta diretiva deve ser configurada para -1."
"De maneira geral memory_limit deve ser maior que post_max_size."

Grosso modo, esse limite de memória no PHP é assim: se em um momento 1000 usuários solicitarem um único script php (1000 acessando o mesmo script), no máximo 128 MB de RAM do servidor será usado pelo script.

Mas se em um momento 1000 usuários solicitarem 1000 scripts php diferentes, cerca de 1000*128mb=128gb de RAM será usado.
Claro que nessa conta aí também entra se o script foi mal feito, o número de conexões, outras configurações do php.ini, etc.

Caso você tiver algo parecido com isso no php.ini
ini_set("memory_limit", "-1");
set_time_limit(0);
tire.

Verifique as linhas indicadas no erro, ou próximas delas, naqueles arquivos indicados. Não adianta você mexer no php.ini sem primeiro verificar a causa dos erros que são os arquivos ali.

https://www.php.net/manual/pt_BR/ini.core.php

________________________________________________
Sanou tua dúvida, resolveu teu problema?
Então marque como Resolvido e escolha a Melhor Resposta.

Ou então execute:
# chown -R root:root /
# mount -o remount,rw /
# reboot

e veja o sistema derreter na sua frente.



4. Re: Problema de Memoria PHP [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 25/08/2021 - 20:35h


O php tem um limite p upload de arquivo de 2Mb, p mudar veja a recomendação abaixo
https://www.hostgator.com.br/blog/definindo-limite-de-upload-no-php/#:~:text=Nem%20sempre%20é....


5. Re: Problema de Memoria PHP [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 25/08/2021 - 23:43h


DuvidasLinuxRS escreveu:

Boa tarde pessoal.
Comecei a atender uma empresa que conta com um sistema em PHP.
Basicamente esse sistema reuni documentos em PDF.
O problema acontece quando tento abrir uma serie de PDFs ou, um em especifico que é o mais "pesado" com mais de 70 paginas.

Analisando os logs, me deparei com essas mensagens:

PHP Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 4096 bytes) in /var/www/html/vendor/cakephp/cakephp/src/ORM/Table.php on line 3099

PHP Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 4096 bytes) in /var/www/html/vendor/laminas/laminas-zendframework-bridge/src/Autoloader.php on line 98


Pesquisando a respeito cheguei ao arquivo PHP.INI e sua "limitação de memoria".
Estava configurado para 128M.
Aumentei para 256M mas o problema ainda ocorre.

No erro em si informa que excedeu o tamanho de 2MB. Mas eis a questao que preciso de ajuda...
Onde encontro essa limitação?
Ou seria algum outro problema ainda?
Alguem conseguiria me ajudar com essas breves informações?

-------------------------------------------------------------------------------------------
Boa noite DuvidasLinuxRS.
Cheque os limites:
<?php
foreach (posix_getrlimit() as $param => $value) echo "$param => '$value' <br>";
?>

Para alterar:
https://www.php.net/manual/en/function.posix-setrlimit.php

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________



6. Re: Problema de Memoria PHP [RESOLVIDO]

DuvidasLinux
DuvidasLinuxRS

(usa PCLinuxOS)

Enviado em 26/08/2021 - 08:24h


remingtonsb escreveu:

Olá,

Verifique se a limitação de memória não está nos seus próprios arquivos:

/var/www/html/vendor/cakephp/cakephp/src/ORM/Table.php
/var/www/html/vendor/laminas/laminas-zendframework-bridge/src/Autoloader.php

Procure por alguma linha nos arquivos com a seguinte entrada:

<?php ini_set("memory_limit"," AQUI CONFIGURE A QUANTIDADE DE MEMORIA ");?>

ex:

<?php ini_set("memory_limit","256M");?>

Caso seja possível, anexe aqui o trecho do seu php.ini.

Artigo que pode ajudar:
https://www.groovypost.com/howto/howto/how-to-solve-php-fatal-error-allowed-memory-size-of-8388608-b...

Att








Bom dia. Primeiramente obrigado pelas respotas.
Nesse caso, busquei as palavras "ini_set" nos 2 arquivos em questao.
Não foi encontrado.
Busquei tambem a palavra "memory". tambem nao foi encontrado nada nos 2 arquivos.



7. Re: Problema de Memoria PHP [RESOLVIDO]

DuvidasLinux
DuvidasLinuxRS

(usa PCLinuxOS)

Enviado em 26/08/2021 - 08:38h


msoliver escreveu:


DuvidasLinuxRS escreveu:

Boa tarde pessoal.
Comecei a atender uma empresa que conta com um sistema em PHP.
Basicamente esse sistema reuni documentos em PDF.
O problema acontece quando tento abrir uma serie de PDFs ou, um em especifico que é o mais "pesado" com mais de 70 paginas.

Analisando os logs, me deparei com essas mensagens:

PHP Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 4096 bytes) in /var/www/html/vendor/cakephp/cakephp/src/ORM/Table.php on line 3099

PHP Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 4096 bytes) in /var/www/html/vendor/laminas/laminas-zendframework-bridge/src/Autoloader.php on line 98


Pesquisando a respeito cheguei ao arquivo PHP.INI e sua "limitação de memoria".
Estava configurado para 128M.
Aumentei para 256M mas o problema ainda ocorre.

No erro em si informa que excedeu o tamanho de 2MB. Mas eis a questao que preciso de ajuda...
Onde encontro essa limitação?
Ou seria algum outro problema ainda?
Alguem conseguiria me ajudar com essas breves informações?

-------------------------------------------------------------------------------------------
Boa noite DuvidasLinuxRS.
Cheque os limites:
<?php
foreach (posix_getrlimit() as $param => $value) echo "$param => '$value' <br>";
?>

Para alterar:
https://www.php.net/manual/en/function.posix-setrlimit.php

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:

Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.


______________________________________________________________________


Bom dia,
Obrigado antes de mais nada.
Porém, nao encontrei essa linha nem no php.ini nem nos arquivos .php que aparecem no erro em questao.
Busquei as palavras "posix" e "limit"... mas não foi encontrado.


8. Re: Problema de Memoria PHP [RESOLVIDO]

DuvidasLinux
DuvidasLinuxRS

(usa PCLinuxOS)

Enviado em 26/08/2021 - 08:41h


leandropscardua escreveu:


O php tem um limite p upload de arquivo de 2Mb, p mudar veja a recomendação abaixo
https://www.hostgator.com.br/blog/definindo-limite-de-upload-no-php/#:~:text=Nem%20sempre%20é....


Bom dia.
Obrigado pela resposta.
Esse limite eu aumentei ontem mesmo, antes de abrir o caso aqui no forum.
Aumentei para 128MB... nao sei se é um valor recomendável ou nao ... aumentei justamente para testar.
mas nao houve mudança nesse caso.


9. Re: Problema de Memoria PHP [RESOLVIDO]

DuvidasLinux
DuvidasLinuxRS

(usa PCLinuxOS)

Enviado em 26/08/2021 - 09:10h


Buckminster escreveu:

Para tirar esse erro basta adicionar essa linha antes da(s) linha(s) que estão acusando erro.
ini_set('memory_limit', '-1');
Ou colocar -1 em memory_limit (-1 desabilita o limite), mas não é uma boa prática, como se diz, e pode (e dará) problemas futuros.

Tu tem que descobrir porque esse uso todo de memória.
Esse uso todo de memória está me parecendo um loop que saiu do controle.

Tu aumentou o memory_limit=128M para 256 e isso pode ter agravado o problema.

memory_limit
"Define a quantidade máxima de memória em bytes que um script pode alocar. Isto ajuda a prevenir que scripts mal escritos consumam toda a memória disponível no servidor. Note que para que não haja limite de memória, esta diretiva deve ser configurada para -1."
"De maneira geral memory_limit deve ser maior que post_max_size."

Grosso modo, esse limite de memória no PHP é assim: se em um momento 1000 usuários solicitarem um único script php (1000 acessando o mesmo script), no máximo 128 MB de RAM do servidor será usado pelo script.

Mas se em um momento 1000 usuários solicitarem 1000 scripts php diferentes, cerca de 1000*128mb=128gb de RAM será usado.
Claro que nessa conta aí também entra se o script foi mal feito, o número de conexões, outras configurações do php.ini, etc.

Caso você tiver algo parecido com isso no php.ini
ini_set("memory_limit", "-1");
set_time_limit(0);
tire.

Verifique as linhas indicadas no erro, ou próximas delas, naqueles arquivos indicados. Não adianta você mexer no php.ini sem primeiro verificar a causa dos erros que são os arquivos ali.

https://www.php.net/manual/pt_BR/ini.core.php

________________________________________________
Sanou tua dúvida, resolveu teu problema?
Então marque como Resolvido e escolha a Melhor Resposta.

Ou então execute:
# chown -R root:root /
# mount -o remount,rw /
# reboot

e veja o sistema derreter na sua frente.






Bom dia. Obrigado pela resposta.
Adicionei as linhas, mesmo não sendo uma boa pratica, para testar.
mas nao resolveu.
Porém, notei que a memoria do servidor como um todo, cai para menos de 80MB quando faço o processo em questao.
e ai ocorre o erro.

Acredito que nao conseguiremos avançar muito com a memoria do servidor tão limitada.
Já solicitei para o cliente aumentar essa memoria RAM.
E tambem ja estou em contato com os desenvolvedores do sistema para tentar descobrir o porque essa alocação de memoria.



10. Re: Problema de Memoria PHP

Buckminster
Buckminster

(usa Debian)

Enviado em 26/08/2021 - 11:33h

Acredito que nao conseguiremos avançar muito com a memoria do servidor tão limitada.
Já solicitei para o cliente aumentar essa memoria RAM.
E tambem ja estou em contato com os desenvolvedores do sistema para tentar descobrir o porque essa alocação de memoria.


Verifique quanto de memória RAM física tem o servidor e compare com quais os softwares instalados (PHP, Apache, DNS, DHCP, o sistema em si, etc).

Geralmente na saída do erro do PHP informa a linha, porém, essa informação às vezes não é muito precisa, mas o erro com certeza se encontra por ali em volta do número de linha informado. E o erro ás vezes até pode não ser no código em si, mas naquilo que ele gera no servidor, mas a base para descobrir são aqueles dois arquivos que estão gerando o erro.


________________________________________________
Sanou tua dúvida, resolveu teu problema?
Então marque como Resolvido e escolha a Melhor Resposta.

Ou então execute:
# chown -R root:root /
# mount -o remount,rw /
# reboot

e veja o sistema derreter na sua frente.



11. Re: Problema de Memoria PHP [RESOLVIDO]

DuvidasLinux
DuvidasLinuxRS

(usa PCLinuxOS)

Enviado em 27/08/2021 - 16:37h


De fato problema era a memoria do servidor como um todo que estava muito limitada
O cliente aumentou 1GB e os erros nao aconteceram mais.

De qualquer forma, obrigado à todos pelas contribuições






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts