空きRAMが60%以上ありますが、単純なPHPファイルを実行できません

空きRAMが60%以上ありますが、単純なPHPファイルを実行できません

.phpローカル環境で簡単なファイルを実行しようとしています:
(Ubuntu 15.10 - Intel® Core™ i7-4600U CPU @ 2.10GHz × 4 - 64 ビット - 8GB RAM)

スクリーンショット

つまり、空き RAM が 60% 以上あることがわかりますが、なぜ常にこのエラーが発生するのかわかりません。

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

私は、この類似した問題に対する解決策を試してみました:リンクしかし、私の問題は解決されません。

ありがとう

答え1

PHP には、1 つのスクリプトが使用できるメモリ量を制限する設定があります。その値を超えると、システムの合計 RAM の容量は関係なくなります。

コンソールで実行している場合、影響を受けるファイルはおそらく /etc/php5/cli/php.ini であり、次の行があります。

memory_limit = XXXXXXX

制限を完全に削除するには、次のように変更します。

memory_limit = -1

しかし、他の人がコメントしているように、あなたのスクリプトはすでに 4 GB を超える RAM を使用しようとしています。おそらく、自分のやり方を再考するか、何らかの無限ループを引き起こすようなコードのバグを探す必要があるでしょう。ほとんどの PHP スクリプト (CLI スクリプトも含む) は、最も難しいタスクでも 256 MB 未満を使用する必要があります。PHP は、2 GB のファイルをメモリにロードして変数で操作したり、データベース全体を配列にダンプしたりするようには設計されていません。私が一緒に働いたプログラマーの多くは、そのようなミスを犯します。代わりに、そのストレージを最も効率的に機能する場所に配置します。DB に残して行ごとに操作するか、ファイルシステムに残して同じことを行います。

また、これが Web スクリプトであり、CLI で実行しているものではない場合は、memory_limit 設定を、少なくとも 4 GB 程度以上は変更しない方がよいでしょう。これは、複数のクライアントにサービスを提供する Web サーバーにとっては好ましくありません。

関連情報