[PHP-users 30257] PHPプログラムとサーバー負荷の関係

Chikara Wakae wakae @ hottaweb.co.jp
2006年 9月 6日 (水) 12:04:38 JST


初めまして、Rickyこと若江と申します。
早速なのですが皆様の知恵を拝借したい事があります。

PHP 4.4.4
Win NT Server 4.0(IIS 4.0)
MS SQL Server 7
(PHPを実行しているWEBサーバーと、
DBサーバーは別々のサーバーです。
ちなみに、WEB・DBサーバー共にスペックは
Pen III 800MHz + メモリー 256M程度です。)

上記の環境でMS SQLデーターベースから取得した
顧客のメールアドレス宛に、ニュースレターを送りたいのですが、
今の時点ではPHPで書いたニュースレター配信のプログラムを動 
かすと
WEBサーバー側でのCPU負荷が100%近くなってしまい、
ホストしているウェブサイトの表示が遅くなってしまいます。
果たしてこれは私のコードが原因なのか、単純にサーバーの
性能が足りないだけなのか、それとも何か他に原因があるのでしょうか?

今はまだテスト段階ですので、実際にメールを送る作業はさせておらず、

$con = odbc_connect(DB_DSN, DB_USER, DB_PASS);
$sql = "SELECT メールアドレス FROM MAIL_LIST ORDER BY メー 
ルアドレス";
$sql = mb_convert_encoding($sql, 	"Shift_JIS");
$result = odbc_exec($con, $sql) or die("Error!" .  mb_convert_encoding 
(odbc_error(), "EUC-JP"));
echo "送信予定件数は[" . odbc_num_rows($result) . "]件で 
す。<br />\n";
echo "ブラウザーを閉じても、バックグラウンドで実行されます。<br / 
 >\n";
set_time_limit(0);

の後に...

while ($row = odbc_fetch_array($result))
  {
$test = mb_convert_encoding("メールアドレス","Shift_JIS");
$cust_add = $row["$test"];
/* 本来ならばここにメールを送るコードが入ります */
echo $cust_add . "にメールが送信されました!<br />\n";
$send_log = $send_log . $cust_add . "にメールが送信されました! 
\n";
}

と言う作業をさせているだけなのですが、それでも実行させると
サーバーの他の動作が非常に重たくなってしまいます。


何か解決のヒントを教えていただければ、非常に助かります。


PHP-users メーリングリストの案内