[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 メーリングリストの案内