- - PR -
HTTPサーバー高負荷によるハードウェア増強目安の質問
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-11-20 01:25
みなさんこんにちは。
アベと申します。 現在稼動しているサーバーのスペックが限界に達しているため サーバーのハードウェアを良い物に交換する必要があるのですが、 ハードウェアの目安が分かりません。 どなたかアドバイスをお願いします。 Linux+Apache1.3+mod_gzip+PHP+MysqlのHTTPD+DNS鯖で 一日に10万ページビュー程あるサイトを運営しています。 半数くらいがPHPで動的生成のページです。 現在のハードウェア構成です。 マイクロATXのMSIのマザーボードに Celeron1GHZ、Memory512MB、HDDはIDEのソフトウェアRAID(ATA133)。 最も負荷の高い時間帯に若干スワップが発生して多少レスポンスが遅くなったかなと感じる程度で、 現在までは快適に動作していました。ところが、新たにプログラムを 追加して一部のビジターのリンクの経路を計測するプログラムを入れたところ、 非常にレスポンスが悪くなりました。 ページをクリックしてから表示されるまでにほとんど待たされる事は 無かったのですが、現在では10秒ほどかかる始末です。 リンク追跡プログラムの高負荷が原因だと思います。 このプログラムがひとつのページに10個ほど設置してあり、 しかもひとつのプログラムが更に二個の子プログラムを起動するので 一人がひとつのページにアクセスすると30個のPHPの稼動が発生するため、 相当の負荷になっていると思います。 これが同時に10人のアクセスなどとなると恐ろしいです。 ハードウェアをどの程度の物に交換したら良いのか検討がつきません。 CPU、メモリ、とそれに伴うマザーボードの3点を交換する必要があるでしょうか。 また、PHPのパフォーマンスを最適化するツールで、 PHP開発元が提供している以下のようなツールはこのような時にどれくらいの パフォーマンスの向上を見込めるんでしょうかね。 ちょっとややこしいのは今はパスなのでハードウェアの方の増強で切り抜けたいと 思っています。 以下のようなツールを試された事がある方のご意見もお待ちしています。 Zend Optimizer(Free) http://www.zend.com/store/products/zend-optimizer.php Zend Accelerator($490) http://www.zend.com/store/products/zend-accelerator.php Zend Performance Suite日本語版(310,000円 ) http://www.wiseknot.co.jp/network/index8.html ■下記はapacheのステータスの結果です Server Version: Apache/1.3.27 (Unix) (Red-Hat/Linux) mod_gzip/1.3.26.1a mod_ssl/2.8.4 OpenSSL/0.9.6b DAV/1.0.3 PHP/4.1.2 Server Built: Oct 23 2002 14:52:50 -------------------------------------------------------------------------------- Current Time: Wednesday, 19-Nov-2003 23:12:09 JST Restart Time: Wednesday, 19-Nov-2003 04:34:01 JST Parent Server Generation: 0 Server uptime: 18 hours 38 minutes 8 seconds Total accesses: 780718 - Total Traffic: 1.3 GB CPU Usage: u1.7 s1.07 cu.63 cs.24 - .00543% CPU load 11.6 requests/sec - 19.7 kB/second - 1736 B/request 28 requests currently being processed, 0 idle servers ...R.WR.....W..W.W.R.WWW..R.WWWWWWWWWSSS....R...W....R.W........ ...R............................................................ ................................................................ ................................................................ ■下記は高負荷時のTOPの結果(途中より下は表示されません。) --------------------------------------------------------------------------------------- 11:28pm up 17 days, 7:18, 1 user, load average: 11.67, 10.78, 9.61 147 processes: 140 sleeping, 6 running, 1 zombie, 0 stopped CPU states: 69.3% user, 30.6% system, 0.0% nice, 0.0% idle Mem: 505256K av, 496092K used, 9164K free, 84K shrd, 86264K buff Swap: 1052152K av, 17440K used, 1034712K free 192096K cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 980 apache 20 0 7072 7072 5460 R 21.5 1.3 0:01 httpd 620 root 14 0 520 500 496 R 10.3 0.0 1664m syslogd 1259 apache 19 0 2652 2652 1104 R 6.9 0.5 0:00 regist_ys.cgi 737 named 11 0 2300 2132 1880 S 6.4 0.4 1613m named 13660 taknya 10 0 1160 1160 832 R 6.0 0.2 0:09 top 1084 apache 9 0 6476 6476 5416 S 3.4 1.2 0:00 httpd 244 root 9 0 0 0 0 SW 3.0 0.0 756:39 kjournald 1239 apache 9 0 6140 6140 5356 S 2.5 1.2 0:00 httpd 690 apache 9 0 6392 6392 5496 S 2.1 1.2 0:00 httpd 998 apache 9 0 6872 6872 5368 S 2.1 1.3 0:00 httpd 1138 apache 9 0 5944 5944 5324 S 2.1 1.1 0:00 httpd 1208 apache 9 0 6144 6144 5356 S 2.1 1.2 0:00 httpd 1222 apache 9 0 6380 6380 5356 S 2.1 1.2 0:00 httpd 1114 apache 9 0 6168 6168 5380 S 1.7 1.2 0:00 httpd 1149 apache 9 0 6200 6200 5392 S 1.7 1.2 0:00 httpd 1186 apache 8 0 6184 6184 5352 S 1.7 1.2 0:00 httpd 1216 apache 9 0 5936 5936 5320 S 1.7 1.1 0:00 httpd 1228 apache 9 0 5936 5936 5320 S 1.7 1.1 0:00 httpd 1229 apache 9 0 5948 5948 5360 S 1.7 1.1 0:00 httpd 1240 apache 9 0 5904 5904 5296 S 1.7 1.1 0:00 httpd 1246 apache 15 0 5452 5452 5204 S 1.7 1.0 0:00 httpd 1248 apache 9 0 5808 5808 5364 S 1.7 1.1 0:00 httpd 1252 apache 10 0 5404 5404 5212 S 1.7 1.0 0:00 httpd 25294 root 7 0 5260 5260 5112 S 1.2 1.0 7:16 httpd 632 apache 9 0 7052 7052 5396 S 1.2 1.3 0:00 httpd 1014 apache 8 0 5460 5460 5200 S 1.2 1.0 0:00 httpd 1095 apache 9 0 6048 6048 5364 S 1.2 1.1 0:00 httpd 1134 apache 9 0 7012 7012 5396 S 1.2 1.3 0:00 httpd 1137 apache 9 0 6448 6448 5416 S 1.2 1.2 0:00 httpd 1150 apache 9 0 6228 6228 5344 S 1.2 1.2 0:00 httpd 1171 apache 9 0 6176 6176 5384 S 1.2 1.2 0:00 httpd 1183 apache 9 0 5984 5984 5396 S 1.2 1.1 0:00 httpd 1200 apache 6 0 5456 5456 5204 S 1.2 1.0 0:00 httpd 1209 apache 9 0 5816 5816 5328 S 1.2 1.1 0:00 httpd 1245 apache 9 0 5904 5904 5296 S 1.2 1.1 0:00 httpd 1268 apache 17 0 0 0 0 Z 1.2 0.0 0:00 c.cgi <defunct> 739 named 9 0 2300 2132 1880 S 0.8 0.4 229:46 named 13388 root 10 0 2292 2292 1656 R 0.8 0.4 0:01 sshd 1173 apache 9 0 6028 6028 5388 S 0.8 1.1 0:00 httpd 1192 apache 9 0 5816 5816 5332 S 0.8 1.1 0:00 httpd 1193 apache 9 0 5936 5936 5320 S 0.8 1.1 0:00 httpd 1199 apache 8 0 5976 5976 5320 S 0.8 1.1 0:00 httpd 1215 apache 8 0 5452 5452 5200 S 0.8 1.0 0:00 httpd 1218 apache 9 0 5992 5992 5392 S 0.8 1.1 0:00 httpd 1221 apache 9 0 5932 5932 5320 S 0.8 1.1 0:00 httpd 1223 apache 9 0 5840 5840 5392 S 0.8 1.1 0:00 httpd |
|
投稿日時: 2003-11-20 11:39
私はこのようにアクセスの多いマシンを管理したことは有りませんが、top の出力を見て気になる点は、
11:28pm up 17 days, 7:18, 1 user, load average: 11.67, 10.78, 9.61 ロードアベレージは高くなりすぎていますねぇ. 147 processes: 140 sleeping, 6 running, 1 zombie, 0 stopped CPU states: 69.3% user, 30.6% system, 0.0% nice, 0.0% idle プロセス数はさほど多く有りませんが、システムの割合が30%と高いのはロードアベレージが高いことが原因でしょうか。 Mem: 505256K av, 496092K used, 9164K free, 84K shrd, 86264K buff Swap: 1052152K av, 17440K used, 1034712K free 192096K cached メモリはスワップの量もさほど多くないことから大丈夫かと。 apacheのプロセスが多いのはともかくとして、 620 root 14 0 520 500 496 R 10.3 0.0 1664m syslogd 737 named 11 0 2300 2132 1880 S 6.4 0.4 1613m named 244 root 9 0 0 0 0 SW 3.0 0.0 756:39 kjournald 17日間稼動にしては syslogd が働き過ぎの気がします。kjournaldがよく働いているのはこれが原因でしょうか。 named も働き過ぎに感じます。リンク追跡プログラムが named に重労働を課しているのではないでしょうか? ログメッセージを解析して、スクリプトにエラーが無いか確認してみて下さい。 named を自前で処理していることが負荷を高めているように思います。別の name server を立てるか外の named に頼っては如何でしょうか? |
|
投稿日時: 2003-11-21 15:24
ご返信ありがとうございます。
ロードアベレージについて調べてみましたが、通常1.00程度との事で、 ちょっと尋常では無いですね。 named と syslogd の稼働率に関してはどう比較してよいのか分からないです。 アクセスログ、MYSQL、DNS、ルーターのログなどを全てsyslogd経由で取得 しているのでそれが原因でしょうか? リンク追跡のプログラム自体もどうやら高スペックを必要とするらしく、 これを別マシンで補う必要がありそうです。 |
1