以下の仕様で自宅サーバを立てています。
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
LoadAverageが30近くてCPUのidelが0なので、CPUがパンパンの様に見えます。
ただ、CPUのSystemが30%なのでapacheのチューニング次第かCGIのIOを改善することでCPUの負荷を軽減できるかもしれません。Memoryにも余裕があるようですし。
LoadAverageが30近くてCPUのidelが0なので、CPUがパンパンの様に見えます。
ただ、CPUのSystemが30%なのでapacheのチューニング次第かCGIのIOを改善することでCPUの負荷を軽減できるかもしれません。Memoryにも余裕があるようですし。
なるほど、topコマンドすべての項目を理解するに至っていませんでした。勉強になります。(独学なもので)
LoadAverage は CPU の数+α程度が限界なので、相当オーバーしてますね。
CPU 使用率も User の比率が大きいのでプログラム側の改善が必要に思えます。
メモリは相当余っているので、キャッシュ機能を実装するのがいいんでしょうね。
DBを使用しているならそちらのチューニングも検討した方がよいでしょう。
FreeBSD 全般のチューニングに関してはこちらが参考になると思います。
ありがとうございます。URLの知識はありませんでした。これが「家」なら、私の家は雨降ったら雨漏りですね。。
更に、「apache2のスレッド」に関してですが、よければ、以下よりお願いします。
lighttpdなどの比較的軽いといわれるサーバー+FastCGIという手もあるかと思います。 あるいはフロントエンドサーバーに画像とHTMLを処理させてCGIはmod_perlなバックエンドサーバーとわけて、mod_perlサーバーではログをとらないとか、mod_perl機能のみ詰め込んだ状態にして負荷を軽減させるとかあるかとおもいます。
リバースプロキシhttp://www.sixapart.jp/movabletype/developers/naoya/archives/200...
あとは自宅サーバーであれば、結構なアクセスがあるロボットのための遅いサーバーとかを用意して、ロードバランス機能や、mod_rewriteやmod_proxyなどでロボットとかはそちらに回す手もあるかなと思います。
CGI以外の負荷なんかだと、キャッシュさせるとかかもです。
できればサーバは一台で限界まで働かせたいです。しかし、「ロボット用の遅いサーバ」というのはいいかもしれません。
lighttpd+FastCGIも試してみようかと思います。
追加させてください。 ご存じかもしれませんが、フロントエンド、バックエンドともにポート番号分けて1台のサーバーに置いてもいいですよ。
いえ、知りませんでした。
でも設定とか難しそうですね。
ネットや書籍の情報をみながら、一か八かで試行錯誤しながらやっているので・・(専門用語などもよくわかっていないのが現状です)
なるほど、topコマンドすべての項目を理解するに至っていませんでした。勉強になります。(独学なもので)