私は狂った運転をしているのですが、なぜそれが起こっているのか理解できません。PHPは大きなファイルをキャッシュに書き出します
マイシステムは、16GB RAMのUbuntu 14.04です。
私は、次のコード
<?php
$fp = fopen("http://...", 'r');
$write_pointer = fopen('test.bin', 'a');
while (!feof($fp))
{
fwrite($write_pointer, stream_get_line($fp, 4096));
fflush($write_pointer);
}
fclose($write_pointer);
fclose($fp);
?>
でPHPスクリプトを持っていることは、HTTP(無限)から読み込み、ファイルに書き込みます。このファイルは非常に大きなファイルで、無限で40 GBものファイルにすることができます。
ディスク(RAM-Diskなどではなく)にファイル(test.bin
)を書き込みます。
問題はCACHED RAM is being increased all the time
であり、1〜2日後にはキャッシュにのみ100%になります。
なぜこのようなことが起こっているのか説明できますか?そんなに多くのRAMを消費するのはなぜですか?
そして、私はバッファをクリアした場合でも、1~2日後に同じことが
が起こるかは、あなたがあなたの$write_pointer
が開いていた時間の長さを追跡することによって、問題を回避することができますあなたの よろしく
通常、PC上に高い「キャッシュRAM」を使用することをお勧めします。これは、ディスクにヒットするのを防ぐのに役立ちます。これは、パフォーマンスが大幅に低下する可能性があります。 –
システムは、私がディスクに多くのデータを書き込むことを理解しており、これを防ぐためにRAMを使用していますか?私はそれを無効にしたい場合は? – OhGodWhy
@MarcBが正しいと思います。 LinuxがRAMをどのように使用しているかに精通していない場合は、このサイトをチェックしてください。http://www.linuxatemyram.com/ – Machavity