XSERVER 503

汎用ツール

XSERVERでブログが応答しない、ページ表示されない、503エラーが発生したときの負荷軽減策

ここのところ、複数設定しているうちのあるドメインにて
ページ表示できない・・・
との連絡をいただきました。

表示ができないというのは、
極端にレスポンスが遅いとか
503エラー(503 Service Unavailable)が出る状況です。

 

XSERVER 503エラー

 

この現象はXSERVERで発生しました。

長年使っていて最も信頼できるサーバーなのですが
少なくとも503エラー表示にある『アクセスが大量に発生して・・・』
というのは、少なくともこの時はそうではありませんでした。
(自分で確認したタイミングではという意味です)

ワードプレスサイトでしたので
使っているプラグインなどをチェックし
すべて停止してみましたが、起こるときは起こる・・・

こんな状況なのでXSERVERへ問い合わせしてみました。
さすがにレスポンス早く当日には返事をもらいました。

(中略)

また、当サポートにて確認をいたしましたところ
XアクセラレータVer.2が要因の一つである可能性もございます。

つきましては、お手数ではございますがVer.1への変更をお試しいただき
挙動が改善されるかをご確認くださいますでしょうか。

 

XアクセラレータVer.2とは、XSERVERのサーバーパネルで
選択可能なオプションのことです。

XアクセラレータVer.2

 

この図のように、
XアクセラレータVer.2からXアクセラレータVer.1
へ変更してみました。

どちらもXSERVERの推奨でもあるので
無条件にXアクセラレータVer.2を選んでいたのですが
どうやら何らかの相性(例えばワードプレステーマと)
があるのかもしれません。

ちなみこの時のワードプレスバージョンは
バージョン 5.2.4?ja(この時点で最新版)

また使っているPHPバージョンは
PHP7.2.17(推奨)
であり、これより最新版も(PHP3.8)もあるのですが
まだそっとしておいて使っておりません。

ここで述べた方法はおそらくケースバイケースで
唯一の解決策ではないはずと思っておりますが
同様に解決できる場合もあると思いますのでご参考まで。

 

ドメインではなく契約アカウント単位でリソース制限がある

ここからの話は、技術的にもすぐ理解できる人と
そうでない人といるはずですが、疑問に思っていたことを
XSERVERに問い合わせたところ、すぐ(1時間くらい)に
返事が来た内容をご紹介します。

まず何を疑問に思ったかというと
503エラーはたまたまあるドメインで確認できたのですが
契約アカウント内にある別ドメインでも
レスポンスが遅い現象が見受けられたのです。

つまりサーバーのリソース不足で503エラーが
出たのだとすると、そのリソース不足とは
ドメイン単位なのか、それとも契約アカウント全体で
考えるべきなのか?という点です。

この件では、答は後者のほうですが
かなり詳しい返事をもらったのでご参考まで添付します。

 

お忙しい中、ご返信いただきありがとうございます。

ご連絡の件につきまして、ご利用のサーバーアカウントで
運用されているドメインすべてでのプログラム負荷が高まった際などに
一時的なリソース制限などが実施されることがございます。

このような場合、プログラムの実行頻度を少なくしたり
実行時間を短くするといった対策を
お客様側でご検討、ご対応いただく必要がございます。

以下に当サービスのサーバーの仕様についてご説明いたしますが
根本的な対策内容につきましては
お客様側でご検討いただく必要がございますことを
ご了承くださいますようお願いいたします。

※ 当サービスではお客様のサイト構成を拝見しての
  コンサルティング的なサポートはいたしておりません。

上述のとおり、本件はお客様のサーバーアカウントにおきまして
プログラム負荷が高まったため、一時的なリソース制限が行われ
その影響で500・503エラーが発生している可能性が高い状態です。

当サービスではPHPやCGIプログラムの実行、
FTP接続、IMAP接続など全ての動作における
合計に「同時稼動数」の上限を設けております。

「同時稼動数」が上限に達しますと
PHPやCGIの実行で500エラーや503エラーが発生したり、
IMAP接続に失敗するという状況が発生します。

そのような状況下で500・503エラーが発生している場合は
サーバーパネル「ログファイル」にてエラーログを確認していただければ
リソース制限によるものかどうかをある程度確認することが可能です。

エラーログには以下のようなログが発生しますので
ご参考にしていただければと存じます。

▼エラーの例(全てではございません)
------------------------------------
(104)Connection reset by peer~
End of script output before headers~
mod_fcgid: can't apply process slot for~
------------------------------------

また、500・503エラーが今後も頻発するという場合は
ご利用のプログラムの負荷軽減対策を行っていただく、
メールをIMAP方式で利用されている場合は
メールソフト側の同時接続数や接続頻度の設定を落としていただくなど
ご自身にて対応をご検討いただく必要がございます。

当サーバーでは他のユーザー様へ負荷の影響を及ぼさぬよう
このような処理を行っておりますので、ご理解くださいますよう
何卒よろしくお願い申し上げます。

なお、お客様側でもCronやSSHを利用してリアルタイムに
稼動プロセスをご確認いただくことは可能でございます。

比較的容易な方法としては、500・503エラーが発生した際に
サーバーパネル「Cron設定」にて以下のように設定する方法です。

--------------------------------------------
分 / 時 / 日 / 月 / 曜日 / コマンド
--------------------------------------------
* / * / * / * / * / ps x > processlist.txt
--------------------------------------------

※ IMAPを含めた全稼動プロセスを確認する形となります。

※ SSH機能を利用して『ps x』コマンドを実行することで
  よりリアルタイムにプロセスを確認することも可能です。

上記は毎分のプロセスを確認するコマンドで、
実行されましたらお客様のFTPサーバー領域の最上位の位置に
「processlist.txt」というテキストファイルが生成され
そちらに稼動プロセスが記載されます。

本来、Linuxコマンドについてのサポートはしておりませんが
問題の解決についてはご自身でリアルタイムに稼動プロセスを
確認していただくのがよろしいかと存じますので
参考にしていただければと存じます。

お客様は該当のWEBサイトでWordPressをご利用のようですので
『WordPress 負荷対策』などのキーワードでお調べいただければ
軽量化の手法を紹介しているWEBサイトが多数ございますので
それらを参考にしていただくのもよろしいかと存じます。

ご不明な点がございましたら、お気軽にお問い合わせください。

何卒よろしくお願い申し上げます。

 

ということでして、プラグインの停止・削除などを筆頭に
XアクセラレータVer.2は相性を見極めて利用し
契約アカウント内で使っているすべてのドメインについて
高負荷になりそうなものを逐次チェックする、
という総力戦で考える必要があるということですね。

 

それにしても感激するのは、私この日、4回ほど
質問を送ったのですがモノの見事に当日中というか
1時間~2時間程度で前記のような詳細を説明してくれることです。

下矢印