設定要件

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

  • OS: CentOS5.7 64bit KVM Guest
  • Memory: 512Mbyte
  • kernel: kernel-2.6.18-274.17.1.el5
  • Apache: httpd-2.2.3-53.el5.centos.3
  • PHP: php-5.1.6-27.el5_7.4
  • WordPress: 3.1.4

設定手順

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

1. 設定

[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
  • プロセスを定期的に再起動することでメモリリークを防ぐ
  • 個々の子サーバが稼働中に扱うリクエスト数の上限

下図のように今のところ改善が見られる。20:00位から変化している。

さらに詳しい内容はこちら

コメントを残す

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

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