こんにちは。今日はWordPressの運用に関するノウハウです。
少し前に本ブログがよく落ちるという現象がありました。
色々検証していると、そのまま使っているApacheの設定やサーバー設定が不十分だったようです。
※本記事の検証はAWS t2.microで行っています。
何が原因だろう?
なんで落ちるのか、検証してみた。
SSHまで繋がりにくいという状態になっていたので、サーバーのメモリやCPUにまで影響があることは想像できていました。
無限ループが起きていないか
無限ループとはプログラムが延々と実行され続けてしまう現象で、同現象はCPU負荷やメモリの使用率をあげてしまいます。
- プラグイン?
- テーマファイル?
これらはプラグインのON/OFF、テーマの変更によってそれぞれ測ることで検証できます。ただこの時点ではよくわかりませんでした。もちろん一つ一つソースを見ていけば確実かもしれませんが…、それはなかなかできないなーという場合は、公式テーマやプラグインを使うようにしましょう。
そもそもメモリすごく使う?
WordPress自体多くのメモリを使用すると言われているため、「メモリ食い」が日常的に過剰に起きているのではないかということです。
今回はこれが原因だと想定して、サーバー側の設定を見直しました。
対処方法
apacheの設定を見直そう
/etc/httpd/httpd.conf
などの設定の中には、プロセス数の制限数を設定できる項目があります。
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
上記が初期だとすると、以下のように設定しなおしました。
<IfModule prefork.c>
StartServers 3
MinSpareServers 3
MaxSpareServers 6
ServerLimit 140
MaxClients 140
MaxRequestsPerChild 1000
</IfModule>
もちろん同時アクセスを受け付けるためには、この設定を上げる必要がありますが、そのためにはそれに耐えうるサーバーにする必要があります。設定値の説明や基準値などについては以下の参考サイトを御覧ください。
参考:実用 Apache 2.0運用・管理術(3):httpd.confによるWebサーバの最適化 (2/3) – @IT
MySQLが落ちるのが問題?
ここまで色々ブログをみているとMicro Instanceにはスワップ領域がなくMySQLがダウンするという現象があるということがわかってきました。
MySQLの設定(/etc/my.cnf
)を少し変えます。最大接続数を調整します。
max_connections = 10
スワップ領域を作る
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo mkswap /swapfile
sudo swapon /swapfile
こんな感じの設定で、ここ2ヶ月落ちることはなくなりました。
いかがでしたでしょうか?アクセス数を制限するということや、落ちないために若干動作が重くなる、などの副作用もあるようです。
総合的に調べていくと、AWSのMicro InstanceでWordPressを導入する場合、Nginxのほうがいいようです。PHPとの組み合わせも相性がよいですし、サーバーへの負荷も軽減できます。
若干構築が面倒?
そこはAWSのAMI(Amazonのサーバーイメージ)を活用しましょう。
一発で最適なWordPressが立ち上がります。
AWS + Nginx + WordPress | 超高速 WordPress AMI 網元
他のサーバーサービスでの公開や、どうしても自分でチューニングしないといけないとき、こんな方法で解決してるよ!という情報お待ちしてます!
Author Profile
Latest entries
- 2018.04.16プロフェッショナルインタビュー【企業編】広島から全国、そして世界を目指す!株式会社MIRAIのハイレイヤー分析
- 2016.10.21プロフェッショナルインタビュー【企業編】【後編】「夢があればブラックじゃない」福岡の技術集団オルターブースはベーシスト小島氏と愉快な仲間たち
- 2016.10.18プロフェッショナルインタビュー【企業編】【前編】福岡の技術集団オルターブース。楽曲を作れると思ってCOBOLを書いていたベーシスト小島氏と愉快な仲間たち
- 2016.09.02プロフェッショナルインタビュー【フリーランス編】【後編】代理店の仕事は気が楽だけど、それでも直接受ける案件が大事。JUSO Coworkingオーナー深沢さんの仕事