さくら VPS はメモリが 512M とちょっと少なめです。Swap が有るためメモリオーバーで即ダウンするとこはありませんが、すぐに Swap メモリに手を出し極端なパフォーマンス低下を招いたりします。
Wordpress でサイト構築した際は、チューニングを事前に実施しておくことで、Swap を食いつぶして Apache がアクセス不能になって焦る、ということがないようにしたいものですね。
APC - PHP アクセラレータ
Wordpress は PHP, MySQL を使用しています。
まずは PHP のチューニングということで、定評のある APC をインストールします。
APC(Alternative PHP Cache) は、PHPの中間コードのキャッシュや最適化を行う拡張モジュールです。
インストールは、 yum で。Remiリポジトリからインストールするので、予め有効にしておきます。
$ sudo yum search php-pecl-apc
php-pecl-apc.x86_64 : APC caches and optimizes PHP intermediate code
$ sudo yum install php-pecl-apc
設定(/etc/php.d/apc.ini)はデフォルトを使用し、インストール後は httpd を再起動します。
$ sudo /etc/rc.d/init.d/httpd restart
APC の動作確認用ファイルをコピーして、ブラウザから動作チェックできるようにします。
なお、管理者情報はデフォルトから変更しておきます。
$ cp /usr/share/doc/php-pecl-apc-3.0.19/apc.php /var/www/html/www.domain.com/
$ sudo vi /var/www/html/www.domain.com/apc.php
defaults('ADMIN_USERNAME','apc');
defaults('ADMIN_PASSWORD','password');
MySQL のチューニング
次は、MySQL の設定を変更し、キャッシュとバッファの設定をします。
$ sudo vi /etc/my.cnf
[mysqld]
query_cache_limit=1M
query_cache_min_res_unit=4k
query_cache_size=24M
query_cache_type=1
key_buffer = 16M
sort_buffer_size = 1M
read_buffer_size = 256K
$ sudo /etc/rc.d/init.d/mysqld restart
Apache のチューニング
次は、Apache の設定の見直し。
$ sudo vi /etc/httpd/conf/httpd.conf
Timeout 45 #接続を切るまでの時間
KeepAlive On #接続の継続を許可
KeepAliveTimeout 3 #継続時間
StartServers 5 #起動時のプロセス数
MinSpareServers 5 #待機プロセス数の最小個数
MaxSpareServers 10 #待機プロセス数の最大個数
ServerLimit 64 #プロセス数の上限
MaxClients 64 #稼動プロセスの最大個数
MaxRequestsPerChild 4000 #一つのプロセスが実行するリクエスト数
$ sudo /etc/rc.d/init.d/httpd restart
ついでに、PHP の設定で、 zlib を有効にし、転送速度を向上させておきます。
$ sudo vi /etc/php.ini
zlib.output_compression = On
WP Super Cache - Wordpress プラグイン
最後に、Wordpress 自身のチューニングで、WP Super Cache というプラグインをインストールします。
プラグインのインストールは、Wordpress のダッシュボードからインストール出来ます。
インストール後は、設定ページから Caching On にすると有効になります。
まとめ
- APC で PHP のチューニング
- キャッシュとバッファの設定で、MySQL をチューニング
- メモリに合わせて、Apache をチューニング
- WP Super Cache で、Wordpress をチューニング
これで、かなり高速・軽量になったかと思います。
あとは、状況に合わせて細かな設定変更をしていくといいと思います。
- 参考
- AKIBE - さくらのVPS CentOSでサーバ構築 13 – パフォーマンス