この記事は CentOS 5 を前提にした古いサーバー構築・保守手順の記録です。CentOS 5 は既にサポートが終了しているため、新規構築では現行の Linux ディストリビューションを利用してください。ここでは、当時の環境を保守・確認するための資料として整理しています。
参考書籍
Apache HTTP Server ポケットリファレンス
Apache HTTP Server の設定、ディレクティブ、モジュール、運用項目を確認したい場合の参考書籍です。古い 2.0 / 2.2 系対応書籍のため、価格や在庫、現在の Apache 2.4 との差分はリンク先や公式ドキュメントで確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
概要
この WordPress は Apache を使用しており、サーバーのメモリは 512MB です。最近、WordPress にいくつかのプラグインを追加したせいか、Apache のプロセスがメモリを食い潰し、頻繁に SWAP が発生するようになりました。
調べてみると、今回のケースに効果がありそうな Apache のチューティング方法を見つけることができたので、試してみました。設定ファイルは /etc/httpd/conf/httpd.conf です。
変更前は以下の通りです。
cat > /etc/httpd/conf/httpd.conf <<'EOF'
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
EOF変更後は以下の通りです。設定値のバランスは難しいですが、適当に減らしてみました。
cat > /etc/httpd/conf/httpd.conf <<'EOF'
<IfModule prefork.c>
StartServers 2
MinSpareServers 2
MaxSpareServers 4
ServerLimit 50
MaxClients 50
MaxRequestsPerChild 50
</IfModule>
EOF以下は各設定項目の説明です。
- StartServers: Apache が起動する際に同時に起動する子プロセスの数を指定します。これによって、Apache が負荷を処理するために最初に必要なリソースが確保されます。
- MinSpareServers: Apache が常に起動しておくべき最低限の空きプロセスの数を指定します。これによって、負荷が急増した場合でも Apache が追加のリクエストを処理できるようになります。
- MaxSpareServers: Apache が常に起動しておくことが許可される最大の空きプロセスの数を指定します。これによって、過剰なプロセスが起動しすぎてサーバーのリソースを無駄に消費するのを防ぎます。
- ServerLimit: サーバーが同時に処理できる最大のリクエスト数を指定します。これは Apache の設定の上限であり、この数以上のリクエストが来た場合は新しいリクエストは拒否されます。
- MaxClients: Apacheが同時に処理できる最大のクライアント接続数を指定します。これは、同時接続されるユーザーの数を制限します。
- MaxRequestsPerChild: 1 つの子プロセスが処理する最大リクエスト数を指定します。この数に達すると、Apache はその子プロセスを終了し、新しいプロセスを起動します。これによって、メモリリークやプロセスの不安定化を防ぎます。
Apache を再起動して有効化します。
service httpd restart結果として、多少良くなった気がしますが、そもそもメモリの増強を検討した方が良さそうです。
関連記事
- CentOS 5 サーバー構築・保守ガイド – レガシー Linux 手順の整理
- CentOS 5 MySQL データベースサーバー構築 – my.cnf と初期設定
- CentOS 5 VLAN_NAME_TYPE – VLAN インターフェイス名の形式を確認する
- CentOS 5 KVM 用高可用性ネットワーク設定 – bonding / VLAN / bridge
- CentOS 5 Apache Status の確認 – mod_status で稼働状態を見る
- CentOS 5 Cacti モニタリングサーバー構築 – RRDtool と SNMP 監視
- CentOS 5 ネットワーク設定 – ifcfg と network サービスの基本
CentOS 5 Apache メモリ不足時のチューニング – httpd プロセス数を見直す




感謝noun感謝”]]],”en感謝thanksthanks感謝ありがとうございます