CGIへ、毎秒40アクセス程あります。現状以下のスペックではそろそろ限界でしょうか? CGIの負荷はそれほどでもありません(そう思い込んでいるだけかもしれませんが・・)。


以下の仕様で自宅サーバを立てています。
sc430(memory 1.5G,Pentium4 2.8 GHz デュアルコア)
freeBSD6.1
apache2.2
mod_perl and perl5.8.8

以下は、topコマンドの結果です。
last pid: 34041; load averages: 29.18, 29.46, 28.61 up 0+02:34:54 00:29:59
292 processes: 32 running, 260 sleeping
CPU states: 69.8% user, 0.0% nice, 30.2% system, 0.0% interrupt, 0.0% idle
Mem: 89M Active, 348M Inact, 161M Wired, 112M Buf, 900M Free
Swap: 2048M Total, 2048M Free

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2007/01/23 20:35:15
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:huruyosi No.1

回答回数30ベストアンサー獲得回数3

ポイント60pt

LoadAverageが30近くてCPUのidelが0なので、CPUがパンパンの様に見えます。

ただ、CPUのSystemが30%なのでapacheのチューニング次第かCGIのIOを改善することでCPUの負荷を軽減できるかもしれません。Memoryにも余裕があるようですし。

id:ironbsd

なるほど、topコマンドすべての項目を理解するに至っていませんでした。勉強になります。(独学なもので)

2007/01/23 02:13:17

その他の回答3件)

id:huruyosi No.1

回答回数30ベストアンサー獲得回数3ここでベストアンサー

ポイント60pt

LoadAverageが30近くてCPUのidelが0なので、CPUがパンパンの様に見えます。

ただ、CPUのSystemが30%なのでapacheのチューニング次第かCGIのIOを改善することでCPUの負荷を軽減できるかもしれません。Memoryにも余裕があるようですし。

id:ironbsd

なるほど、topコマンドすべての項目を理解するに至っていませんでした。勉強になります。(独学なもので)

2007/01/23 02:13:17
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント50pt

LoadAverage は CPU の数+α程度が限界なので、相当オーバーしてますね。

CPU 使用率も User の比率が大きいのでプログラム側の改善が必要に思えます。

メモリは相当余っているので、キャッシュ機能を実装するのがいいんでしょうね。

DBを使用しているならそちらのチューニングも検討した方がよいでしょう。

FreeBSD 全般のチューニングに関してはこちらが参考になると思います。

http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&...

id:ironbsd

ありがとうございます。URLの知識はありませんでした。これが「家」なら、私の家は雨降ったら雨漏りですね。。

更に、「apache2のスレッド」に関してですが、よければ、以下よりお願いします。

http://q.hatena.ne.jp/1169487601

2007/01/23 02:41:35
id:peppon No.3

回答回数73ベストアンサー獲得回数0

ポイント40pt

lighttpdなどの比較的軽いといわれるサーバー+FastCGIという手もあるかと思います。 あるいはフロントエンドサーバーに画像とHTMLを処理させてCGIはmod_perlなバックエンドサーバーとわけて、mod_perlサーバーではログをとらないとか、mod_perl機能のみ詰め込んだ状態にして負荷を軽減させるとかあるかとおもいます。

リバースプロキシhttp://www.sixapart.jp/movabletype/developers/naoya/archives/200...

あとは自宅サーバーであれば、結構なアクセスがあるロボットのための遅いサーバーとかを用意して、ロードバランス機能や、mod_rewriteやmod_proxyなどでロボットとかはそちらに回す手もあるかなと思います。

CGI以外の負荷なんかだと、キャッシュさせるとかかもです。

http://hain.jp/index.php/tech-j/2006/12/11/mod_expires

id:ironbsd

できればサーバは一台で限界まで働かせたいです。しかし、「ロボット用の遅いサーバ」というのはいいかもしれません。

lighttpd+FastCGIも試してみようかと思います。

2007/01/23 14:57:48
id:peppon No.4

回答回数73ベストアンサー獲得回数0

ポイント10pt

追加させてください。 ご存じかもしれませんが、フロントエンド、バックエンドともにポート番号分けて1台のサーバーに置いてもいいですよ。

id:ironbsd

いえ、知りませんでした。

でも設定とか難しそうですね。

ネットや書籍の情報をみながら、一か八かで試行錯誤しながらやっているので・・(専門用語などもよくわかっていないのが現状です)

2007/01/23 16:32:02

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません