ファイルアップロード完了後のメモリの解放について

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

ファイルアップロード完了後のメモリの解放について

taco66
This post has NOT been accepted by the mailing list yet.
石井と申します。
皆様のお力を借りたく、よろしくお願いします。

3000ファイルのファイルアップロードのテストをしておりますが、アップロード完了後、サーバーメモリーが解放されず
困っております。

環境 サーバーサイド
Nginx + php-fpm
(PHP 5.4 , Nginx 1.0.15)

メモリ:1024MB
php memory_limit:128M

クライアントサイド
Flashのアップロード

jpg サイズ3MB
アップロードファイル数 500(3000まではまだやっておりません)

状況
ファイル削除前 used memory 930MB
ファイル削除後 used memory 120MB

ファイルアップロードのrecieve.phpで
(中略)

$tempFile = $_FILES['file']['tmp_name'];

$fileTypes = array('jpg');
$files = pathinfo($_FILES['file']['name']);

if (in_array($files['extension'],$fileTypes)) {
move_uploaded_file($tempFile,$targetFile);
echo '1';
} else {
echo '0;
}

unlink($tempFile);
unset($_FILES['file']);

こんな風にして、$_FILES['file']のメモリーを解放したつもりですが、
処理終了後も# top上メモリーが解放されません。

ところが$targetFileに保存されたjpgファイルをシェル上で # rm -rf $targetFile
とやると# top 上でメモリーが一気に減ります。

色々調べてみたのですが、全く状況がわかりません。

なんとかアップロード処理終了後、メモリを解放しないと
同時接続100の要件定義のため、メモリーリークを起こしてしまう可能性があり、
悩んでおります。

アドバイス等頂けたら幸いです。