前提
PHP5.3.3、Apache2.2.34という環境で2Gのファイルアップロードをさせる為、
以下の設定を行いアップロード処理を実現する事は出来ました。
[php.ini] memory_limit 2G post_max_size 2G upload_max_filesize 2G max_execution_time 0 [httpd.conf] LimitRequestBody 2147483647
確認したい事
本来はチャンク処理(?)を行い、分割アップロードで組む事になるとは思うのですが、
上記の設定のみで処理をした場合に、メモリ使用量がどうなるのか、気になっています。
Web上で調べていると
・メモリ上に貯めこんでしまうのでメモリを食ってしまう
・メモリ上に貯めこまないのでメモリを食わない
どちらの情報も出てきていて、どちらの情報が正しいのか分かりません。
自分でメモリ使用量を測定してみようと
①TASKLIST /FI "IMAGEnAME eq httpd.exe" をコマンドプロンプトで実行(実際はLoopしてます)
②ファイルアップロード完了後にメモリ最大使用量を測定
$tmp_name = $_FILES["file"]["tmp_name"]; $upload_path = ""; if (move_uploaded_file($tmp_name, $upload_path)) { echo 'アップロード成功!'; } else { echo 'ファイル移動エラー'; } echo memory_get_usage(true);
を実行したのですが、メモリ使用量はあまり変わらず低いままでした。
上記の結果だけを見るとやはりメモリを使っていないように見えるので、
ストリーム処理でアップロードを行っている?なのでメモリを食っていないという事で良いのでしょうか?
実際の所がどうなのか。また、私の測定方法は正しいのか?
お手数をお掛け致しますが、どなたかご教授下さいm(__)m
tasklistの実行結果(2018/07/30 19:16追記)
情報不足申し訳ありません、実行してみました。メモリ使用量は特に増えていないようにみえます。
APACHEは事前にメモリをある程度確保して、それの中で処理をすると思いますが
その確保量を超えない程度でしかメモリが使われていないという事なんでしょうか・・・?
【アップロード前】 イメージ名 PID セッション名 セッション# メモリ使用量 ========================= ======== ================ =========== ============ httpd.exe 12892 Services 0 1,412 K httpd.exe 632 Services 0 11,368 K 【アップロード中】 イメージ名 PID セッション名 セッション# メモリ使用量 ========================= ======== ================ =========== ============ httpd.exe 12892 Services 0 1,412 K httpd.exe 632 Services 0 11,408 K イメージ名 PID セッション名 セッション# メモリ使用量 ========================= ======== ================ =========== ============ httpd.exe 12892 Services 0 1,412 K httpd.exe 632 Services 0 11,408 K イメージ名 PID セッション名 セッション# メモリ使用量 ========================= ======== ================ =========== ============ httpd.exe 12892 Services 0 1,412 K httpd.exe 632 Services 0 11,408 K イメージ名 PID セッション名 セッション# メモリ使用量 ========================= ======== ================ =========== ============ httpd.exe 12892 Services 0 1,412 K httpd.exe 632 Services 0 11,408 K イメージ名 PID セッション名 セッション# メモリ使用量 ========================= ======== ================ =========== ============ httpd.exe 12892 Services 0 1,412 K httpd.exe 632 Services 0 11,408 K イメージ名 PID セッション名 セッション# メモリ使用量 ========================= ======== ================ =========== ============ httpd.exe 12892 Services 0 1,412 K httpd.exe 632 Services 0 11,408 K イメージ名 PID セッション名 セッション# メモリ使用量 ========================= ======== ================ =========== ============ httpd.exe 12892 Services 0 1,412 K httpd.exe 632 Services 0 11,408 K イメージ名 PID セッション名 セッション# メモリ使用量 ========================= ======== ================ =========== ============ httpd.exe 12892 Services 0 1,412 K httpd.exe 632 Services 0 11,408 K