[PHP-users 33091] 大量のCSV書き出し時にapacheのCPU使用率が高まる
rei okawara
hisashi6 @ mail2.dnet.gr.jp
2008年 1月 11日 (金) 16:22:34 JST
こんにちは。私、大河原と申します。
apache+php+mysqでwebアプリケーションを作成及び導入しているのですが、
[大量のCSV書き出し時にapacheのCPU使用率が高まる]
という現象が発生しております。
詳しい状況は下記の通りです。
■環境
apache 2.0.59
php 5.2.5
mysql 5.1
サーバOS:windows server 2003
サーバCPU:Xeon 1.86 GHZ *2
サーバメモリ:3G
■apacheのCPU使用率
約5秒間、50%になる
*複数ユーザが処理を実施すると100%近いCPU使用率になる
■書き出し件数
4000件
■書き出し列
33列
■書き出し後のファイルサイズ
約2M
■プログラムの概要
//sqlの結果4000件33フィールドをループ
//csv書き出し用に4000件33フィールドを変数に設定
//sqlの結果4000件をループ終わり
//HTMLヘッダーを定義
header("Content-type:application/ocean-stream;charset=Shift-JIS");
header("Content-Disposition:{$Disp};filename={$FileName}");
//CSV書き出し用変数をecho
//ファイルのダウンロード
■想定される解決策
・結果1行毎にfputsした方がapacheの使用率が軽減する?
良い解決を策をご存じの方がいらっしゃったら、ご教授頂けないでしょうか。
何卒、よろしくお願い致します。
--------------------------------------------
大河原 麗偉
--------------------------------------------
PHP-users メーリングリストの案内