手当たり次第に書くんだ

CentOS5 Webサーバー パフォーマンスチューニング

はじめに

下記の条件にてWordPressを使用していると、メモリを大量に消費し、実用に耐えられない状況となるため、Apacheのパラメータ調整で解消する。

OS CentOS5.7(KVMゲスト)
カーネル kernel-2.6.18-274.17.1.el5
Webサーバー httpd-2.2.3-53.el5.centos.3
PHP php-5.1.6-27.el5_7.4
WordPress 3.1.4
メモリ 512MB

設定手順

Apache2.0はマルチスレッドに対応しており、そのタイプとしてworker、prefork、perchildが存在するが、PHPを使用する場合はpreforkが推奨される。

[root@centos ~]# vim /etc/httpd/conf/httpd.conf

初期値

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

変更後

<IfModule prefork.c>
StartServers 4
MinSpareServers 3
MaxSpareServers 12
ServerLimit 12
MaxClients 12
MaxRequestsPerChild 40
</IfModule>

各パラメータの意味

StartServers
  • Apacheを立ち上げた際に最初に起動するプロセス数
  • 値を増やすとApacheの起動時間が長くなる
MinSpareServers/MaxSpareServers
  • 常時待機しているプロセス数を調整
  • 過度な待機プロセスが発生しないように設定
ServerLimit/MaxClients
  • MaxClients=使用可能なメモリ量/Apacheの1プロセスが使用するメモリ量
  • 使用可能なメモリ量を384Mbyte、Apacheの1プロセスが使用するメモリ量を32Mbyteとし、12を割り当てる。
  • ServerLimitはMaxClientsと同じ値を割り当てる。
MaxRequestsPerChild
  • プロセスを定期的に再起動することでメモリリークを防ぐ
  • 個々の子サーバが稼働中に扱うリクエスト数の上限
CentOS5 Webサーバー パフォーマンスチューニング

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る