2月 162010
 

Apacheのチューニングでこんなページを教えてもらったのですが
微妙に違うような気がするのでメモ(解釈の違いかも)

最終回 Apacheパフォーマンス・チューニングの実践

注意が必要なのは、リクエストを処理しているプロセスは待機プロセスと呼ばない点である。
つまり、最大時にはMaxClientsとMaxSpareServersを足した数のプロセスが起動するということだ。

MaxSpareServersはあくまでも待機プロセスだと記憶してたので
こんな設定を試してみました


<IfModule prefork.c>
StartServers       8
MinSpareServers   20
MaxSpareServers   20
MaxClients       30
ServerLimit      30
MaxRequestsPerChild  4000
</IfModule>

起動時8プロセスでとりあえず20まであがる
負荷時は最大30(+親プロセス1)といった感じです
ABで多重度40で試してみたところ想定どおり31のプロセス数でした

最大時というのが曲者で
おそらく筆者はMaxClientsが十分ある環境の下で負荷+MaxSpareServersの
プロセスがあがるといいたかったのではないかと思うのですが
さっくり読んでしまうとMaxClients+MaxSpareServersが最大あがるプロセス数と勘違いしてしまうかも知れないので・・・

ちなみに聞いた話だとプロセスがあがるのはまだ無視できるけど
プロセスが死ぬときの負荷は無視できないということを聞きましたので
MinSpareServersとMaxSpareServersの値は同じにして
ピークのプロセス数あたりに合わせるといいかもしれません(未検証)

あ、自分の勘違いだったら指摘していただけるとありがたいです

参考サイト
Apache MPM prefork
Apache MPM 共通ディレクティブ


 Posted by at 2:05 AM  Tagged with:
2月 112010
 

PHPを使う場合Apacheとnginxどっち使えばいいん?と気になったのでパフォーマンス比較してみました
こんな感じの構成で

すべて仮想サーバ構成です

負荷元サーバー

CPU=2
RAM=1000M

がんばるサーバ

CPU=4
RAM=1024M

DBサーバ

CPU=4
RAM=1536MB

使ったミドルウェア

Apache 2.2.3
Nginx 0.7.64
PHP 5.3.1 (子プロセス=6 tcp接続)
MySQL 5.5.1
spawn-fcgi 1.4.22
wordpress 2.9.1

Continue reading »