WordPressを使用して503エラーが多発したときの対処法
2016/01/25
別のサイトでトレンドアフィリエイトを実践中です。落ち着いたら成果などをまとめて載せたいと思っています。
本日アクセスが集中により「mod_fcgid: can’t apply process slot for」エラーが発生。アクセスが多い?数時間前から同じ状態であり今に始まったことじゃない。どうすればいいのかサポートに連絡しても根本的な解決になることはしてくれない。四苦八苦して何とか自力で乗り切りました(知識はそれほどあるわけではなくすべて独学です)。
-スポンサーリンク-
本日1つの記事が1日で14万PVを達成しました。しかし軌道に乗ってきた時に出たのが503エラー。
エラーログを確認すると「mod_fcgid: can’t apply process slot for」。どうすればいいかさっぱりわかりませんでした。
このトラブルがなければ16万PVは超えていただけに非常に悔しい思いをしました。参考になるかわかりませんが503エラーを回避した方法を記載しておきます。
503エラーはアクセス集中時に起こりやすいです。アクセスを稼ぎたいときにエラーが出るとPVを稼げなかっただけでなく、訪問者にこのサイトは繋がりにくいという印象を与えてしまうので出来れば避けたいエラーです。
503エラーが起こる原因は?
503エラーは同時アクセス数がサーバーの設定している数値を超えることで発生するそうです。
理由としては以下の通り。
- 急にアクセスが増えた
- WEB構築が複雑であり滞在時間が無駄に長すぎる
要はセッションが多すぎるのが原因です。私は「x-server」を使用していますが当日は下記画像のような状態でした。
サイトを開始して4ヶ月。今まで見たことないアクセスにウキウキしていました。
しかし15時と16時のセッション数が著しく減っているのがわかると思います。503エラーに直面しました。
どうしたらいいのかわからないので対処法を聞こうとサポートに電話しましたが技術的なことはメールで問い合わせるように言われ仕方なくメールしました。
503エラーの解決方法は?
返事が来るまでにネットに似たようなケースがないか調べてみたらやはり同じ状況に陥ってる方がいるではありませんか。
解決策はPHPを作動させるためのポートの数が足りてないからポートを増やせとのこと。よくわかりませんがレンタルサーバーなので恐らく無理です…
専用サーバーであれば同時アクセス数の上限は高いそうなのですが、残念ながら「x-server」に専用サーバーはありません。プランのグレードを上げれば同時アクセス上限は増えるか問い合わせてみてもそれは変わらないとのこと。
移転か…今から移転してドメイン移して…何時間かかるんだよ…
何とか解決できないか方法を探すことに。
ヤフー知恵袋に同じ状況に陥ってる方の質問を発見!
これこれ!まさにこれ!
回答は…
詰んだ( ;∀;)
しかし!!!このタイミングでサポートさんからお返事が!!!渡りに船とはまさにこのこと!
ところが根本的な解決になることは記載されておらず、PHPやCGIの稼働状況が多すぎるから負荷をかけているプラグインを停止するなり削除しろと。
指摘されたプラグインはインストールはしているものの使ってはいないし、どう考えてもプラグインだけで解決するとは思えない。
しかし諦めきれなかったので自分なりに考えてみました。PHPが作動出来ないのが原因なのでもしかしてPHPに原因があるのでは!?
そこでバージョンを確認すると少し古いバージョンだったので新しいバージョンに変更。
すると…
直ったぁ…( ;∀;)
PHPを新しいバージョンにしたことで動作が軽くなったのでしょうか?詳細は全く分かりません。1時間半ほど費やしたので恐らく15,000~20,000PVほど逃したと思います。
まぁこれでとりあえずホッと一安心。しかしアクセスが多くなるのは夜なので大丈夫か心配でした。
20時からアクセスが多くなるのでスタンバイしてると…
またきたああああああああぁぁぁぁぁぁぁぁ…( ;∀;)
他に何が出来るんだ?全く分かりません。しかし原因がPHPとわかっている分だけ今回は対処しやすかったです。
「mod_fcgid: can’t apply process slot for」
エラーの原因とにらめっこしていると「fcgi」ってひょっとして「FastCGI」?そういやさっきの知恵袋にもそんな言葉が出てきてた。
現状のPHPのバージョンだと「FastCGI」はセットなのでバージョンを古いものに変えて「FastCGI」と「OPcache」を「OFF」にしてみた。
すると…
直ったぁぁぁぁぁぁぁ( ;∀;)
奇跡再び!所要時間は15分で済みました。
要するにPHPを高速化させるための「FastCGI」がすべてさばききれていなかったのが原因だったのかな?
とりあえず「FastCGI」を切ったままにしておいて本日は何事もなく終わりました。
これはあくまで自分のケースなので100%の保証はありませんが行き詰ったらやってみてはどうでしょうか?
ちなみに同時アクセス数は1500~2000の間でトラブルが発生しているので2016年1月現在、「x-server」の同時アクセス数の上限はこの辺りだと思います。
503エラーを回避する方法は?
サポートさんに教えてもらった事と自分で調べたことを書いておきます。
- 「WP Super Cache」の導入
- DBを使ったアクセス解析をやめる
- DBを使ったランキング表示をやめる
どうしてもDBを使用すると負荷が常に高くなるそうなので早めに「Google Analytics」の使い方をマスターしたほうがよさそうです。
「Count per day」は負荷が高いのを知っていたので「Slim stat」を使用していましたが、サポートさんから出来るだけ使用しないほうがいいと言われました。
「WP Super Cache」はすぐに導入して有効化しましたが、それでも夜ふたたび503エラーが出たので根本的な解決にはなりません。
しかし使用することで503エラーを抑える効果は間違いなくありそうです。
今回はたまたま記事が大当たりしてこのような事態になりましたが、目標としているのが1日15万PVなので将来的には専用サーバーに変更したほうがよさそうです。
マネジメントサーバーであればサーバーの管理はサポートさんがしてくれるそうなので今のうちに調べておこうと思います。
この記事がどなたかの役に立てれば幸いです。