Tenho mais de 60% de RAM livre, mas não consigo executar um arquivo php simples

Tenho mais de 60% de RAM livre, mas não consigo executar um arquivo php simples

Estou tentando executar um .phparquivo simples em meu ambiente local:
(Ubuntu 15.10 - CPU Intel® Core ™ i7-4600U @ 2,10 GHz × 4 - 64 bits - 8 GB de RAM)

captura de tela

Então você está vendo que tenho mais de 60% de RAM livre, mas não sei por que sempre tenho esse erro:

Erreur : Allowed memory size of 4244635648 bytes exhausted (tried to allocate 4294967674 bytes).

Tentei seguir a solução para este problema semelhante:Link. Mas não está resolvendo meu problema.

Obrigado

Responder1

O PHP possui uma configuração que limita a quantidade de memória que um único script pode usar. Não importa quanta RAM total seu sistema possui se você exceder esse valor.

Se você estiver executando no console, o arquivo que o afeta provavelmente é /etc/php5/cli/php.ini e tem uma linha que diz:

memory_limit = XXXXXXX

Para remover totalmente o limite, altere-o para:

memory_limit = -1

No entanto, como outros comentaram, seu script já está tentando usar mais de 4 GB de RAM. Talvez você deva repensar o que está fazendo ou procurar bugs no código que possam causar isso como uma espécie de loop sem fim. A maioria dos scripts PHP, mesmo os scripts CLI, devem usar menos de 256 MB, mesmo para as tarefas mais difíceis. O PHP não foi projetado para carregar um arquivo de 2 GB na memória e trabalhar nele em variáveis, ou despejar bancos de dados inteiros em arrays. Muitos programadores com quem trabalhei cometem esse tipo de erro. Em vez disso, coloque esse armazenamento onde ele funciona melhor - deixe-o no banco de dados e trabalhe nele linha por linha ou deixe-o no sistema de arquivos e faça o mesmo.

E se este for um script da web e não algo que você está executando na CLI, você provavelmente não vai querer mexer na configuração de memory_limit, pelo menos não em torno de 4 GB ou mais. Essa é uma má ideia para um servidor web que atende vários clientes.

informação relacionada