※ パクレゼルヴではWeb開発エンジニアを大募集中!詳細はこちら
Home > Apache, Tips > Apacheチューニング その1

Apacheチューニング その1  

2008/5/2 金曜日 10:12:49

M役員様、結婚おめでとうございます。姜子牙です。新居乱入はいつにしましょう?

4月のサーバパフォーマンスチューニング月間が完了し、ややほっとしております。一度最大瞬間風速でサーバが応答不能に近い状態になって以来、あれやこれやと調べつつ折を見て設定変更なんかを行ってきたので、それを書きたいなと思います。

このチューニングについては、GIGAZINEさんのサイトが主な情報源だったのですが
http://gigazine.net/index.php?/news/comments/20070119_gigazine_complete/
そこに被る部分、被らない部分、なんかできちゃった部分なんかを記載していきたいなーと思います。また赤裸々に情報を提供して頂いているGIGAZINEさんには感謝感謝です。

私が管理しているサーバはWebはApacheを、DBにはMySQLを使用しています。OSはLinuxで、開発はPHPなので標準的なLAMP構成です。

全部を一気に書くのはさすがに文章量が多すぎるため、まず今回はApacheに焦点を当てて行きたいと思います。(尚、Apacheは2.0以降が対象になると思います。1.*系ではだいぶ違うかも)

今回のApacheのチューニングでは、主に以下2つを対象にして行っています。
1、不要なModuleを外す
2、待機プロセス数の変更

Apacheでは各種機能をCoreから分離してModule形式で使用することができます。
MySQLと比較すると、MySQLは必要に応じて再構築(Configureを変更して、再度Make)が必要だったりするのですがApacheはコンフィグファイルのLoadModuleディレクティブで追加削除し、Apacheのリブートで適用できたりします。便利です。

しかし、ここで二つの問題にぶち当たります。
1-1、どのモジュールが使用されていて、どのモジュールが不要なのか判別がつかない
1-2、Includeしているconfの中などに散らばってLoadModuleディレクティブが書かれている

自分ですべてのプログラムや設定を把握していればいいのですが、そのようなことは少ないです。
Apacheの管理してんだからその上に乗っかるコード全部読んで把握しろと言われたら田舎に帰るか、土に還るか、野生に帰ると思います。

というわけで、ApacheのModuleの一つであるServer-infoを使用します。設定方法の詳細は割愛しますが、以下のようなLocationディレクティブをconfに追加します。Allow句のIPアドレスは任意に変更してください。

<location /server-info>
SetHandler server-info
Order allow,deny
Allow from 255.255.255.255
</location>

その後、Apacheの再起動を行うと、以下のようなURLでアクセスできます。(www.pakureserve.jpでの例です。尚アクセスしても404 Not Foundになります)
http://www.pakureserve.jp/server-info

このページでは、現在Loadされているモジュールの一覧が表示されそれがハンドラされるか否か、またConfファイルのどこかで関連のディレクティブが記載されていたらそのファイル名と行番号を表示してくれたりします。

“Current Configuration”に何らかの内容が表示されていたら、Confのどこかに関連の記載があり”Content handlers”がonの場合、ハンドラでそのモジュール機能が使われる可能性があるようです。(ハンドラの方は自信あまりなかったりします)

そのため、”Current Configuration”が空欄で且つ”Content handlers”がnoneのモジュールを今回は外しました。
/etc/init.d/httpd configtest でSyntax OKとなれば、コンフィグの記載はOKとなります。
/etc/init.d/httpd graceful で再起動します。

これで不要なモジュールをLoadせず稼働するため、少し処理が軽くなります。

やや余談:
httpdにも restart はあるのですが、現在接続中の人も接続を強制的に切断してしまうため稼働中サーバの変更を適用する場合は graceful を使用すると大きな影響なく再起動ができます。

うう・・・長くなっているので、2、待機プロセス数の変更 については次回エントリということで・・・。

[姜子牙](*’▽’) < 「秒間100アクセスでも結構動くよー」
[のびー](*゚Д゚) < 「いやいや、200くらいはサクサクいかないとねえ?」
[姜子牙](;’-') < 「うそん」

はい、逝ってきます。

姜子牙 Apache, Tips

  1. No comments yet.
  1. No trackbacks yet.