Apacheのプロセスが異常にメモリを食う現象に悩まされ今日一日ずっとバグ潰しをしていたのですが、やっと原因を見つけることができました。犯人はPHPのrename()関数でした。異なるファイルシステム間でファイルを移動するためにrename()関数を使うと、ファイルの中身をメモリに読み込んでしまうのか(!?)、巨大なファイルをrename()すると、使用メモリがすごいことになります。

rename(“/mnt/fs1/hoge.zip”,”/mnt/fs2/hoge.zip”);

shellコマンドでmoveする方法にしたところ改善しました。

shell_exec(“mv -f /mnt/fs1/hoge.zip /mnt/fs2/hoge.zip”);

今日一日の進捗は、この1行です。(笑)
今週はバグ潰しばかりで何も進まない。(^^;

LINEで送る
Pocket