[Wordpress] アクセススピードを高速にする設定(nginx + php-fpm)

2017/08/08

Tips Wordpress テクノロジー

t f B! P L
wordpressのブログ表示が極端に遅い。はっきり言って、非力なPCで作ったバーチャル環境の方がよほど早い。 こういうのってSEOにも影響するし、普通に利用ユーザーはブログの質が悪いと判断されてしまう。 インターネットって回線速度とセットで考えられるので、こうした所もチューニングできないと、エンジニアとしては、イマイチと思われてしまうんでしょうね。 そもそも、「wordpressってmysqlを高速化すればいい」とだけ考えていたのですが、実はPHP部分のチューニングも必要だったんですね。 チューンナップ&メンテナンスがいかに重要化を体験できたので、備忘録記事にしておきます。

現状の問題点

そして、外部サーバー監視のエラー報告が、都度飛んでくる。 サバモニ サーバーターミナルで確認してみると、
・LAが異常に高くなっている(50近く) ・1ページのアクセス時間が非常に遅い(1分超えの場合もしばしば) ・httpアラートが頻発
原因もなんとなく分かっているんだが、nginxとphp-fpmをインストールしてチューンナップせずに使っているので、ユーザーアクセス時に無駄な負荷がかかっている&開放タイミングが遅すぎるのだろう。 これらの設定チューニングは今までやったことがないので、自分なりの正解設定を探ってみることにする。

環境

OS : CentOS release 6.9 (Final) Nginx : ver 1.12.1 PHP-FPM : ver 7.0 -- CPU : Intel Xeon E312xx (Sandy Bridge) 2.4GB x 1コア Mem : 512MB Storage : SSD 20GB
先日設定したwebArenaのVPS環境です。 VPS検証「NTTPC – WebARENA」の無料テストで公開サーバー品質テスト

設定

今回セットした内容は以下の通りです。 さほど多くないセットなんですが、CPU数や環境スペックによって値は大きく変わる可能性があるので、これを参考にする人は、色々と負荷テストを行なって最適値を求めてください。

Nginx

$ vi /etc/nginx/nginx.conf # デフォルトをコメントアウト #keepalive_timeout 65; # keep-aliveを短めにセット(1や2でもいいかも) keepalive_timeout 5;

PHP-FPM

$ vi /etc/php-fpm.d/www.conf # max_children数のデフォルト50を10に変更 ;pm.max_children = 50 pm.max_children = 10 上記2点のみの修正だったのだが、ページのアクセスタイムが2sを切る事が可能になった。 おそらくキープアライブの設定が効いたんでしょうね。 アクセスユーザーがずっとプロセス保持されていて、開放タイミングがおそすぎたんでしょうね。

チューンナップの考え方

チューンナップは、WEBページに対して、アクセス負荷テストを行なって、遅延TIMEを計測したり、そのタイミングが数分継続した時のサーバーのLA値の上昇度合いなどを、レポーティングしながら、最適値を決めていきます。 多くのサイトに、CPU数、メモリ数を元に計算する方法などが、掲載されていますが、僕の経験では、WEBサービスであれば、keepaliveだけでかなりの改善ができるはずです。 一番の駄目パターンは、今回のように、インストールしたままのデフォルト値のままという事でしょう。 あと、負荷計測テストも導入時に怠っていますね。 もっと言えば、引越し前サーバーとのベンチ比較もやっていないので、今回の遅延を招いたのは必然だったのでしょう。 とりあえず、テスト手順なども確立してブログ化しておかないといけませんね。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ