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