リソース圧迫の改善方法(WordPressプラグインなどのエラー原因を特定する)

ラッコサーバーでは、ディスク容量・メモリ・CPU負荷などのリソースの使用率が3時間継続して80%を超えると、アラートメールが送信されます。

参考:リソースアラートが届いた時に確認すること

リソース圧迫は、サイトで使用しているプログラム(WordPressプラグイン・テーマ等)の不具合によって発生している可能性があります。

この記事では、リソース圧迫が起きた際に内部処理のエラーを確認し、改善する方法をご紹介します。

注意
  • この記事では、エラー調査や改善方法の一例をご紹介しております。個別プラグイン・テーマその他のプログラムの不具合修正については、恐れ入りますがサポート対象外です。
  • この記事では、PHPによるエラー出力(error_log)から原因を特定する方法を紹介しています。PHP以外の言語(Ruby、Pythonなど)で構成されたアプリケーションのエラーはこの手順では確認できませんため、ご注意ください。

1. error_logをファイルマネージャーで開く

WordPress等のPHPで動作しているCMS(アプリケーション)は、「error_log」というファイルにエラーログが出力されています。

まずはエラーが起きていそうなドメインのerror_logをファイルマネージャーで確認します。

public_html/対象ドメイン/error_logをファイルマネージャーで開いてクリックし、

②メニュー左上の「表示」マークをクリックします。

MEMO

error_logファイルのサイズが大きい(大量のエラーログが溜まっている)とブラウザ上でうまく表示できない場合があります。その場合は一度ダウンロードを行ってから、PC上のテキストエディタソフト等で確認しましょう。

2. error_logの中身を確認する

エラーログは、一般的に下記のような形で記録されています。

[27-Oct-2021 00:00:00 UTC] [エラータイトル]: [エラー名]: [エラー内容] in [エラーが発生しているディレクトリ]

PHPで発生しているエラーが原因でリソースが圧迫されている場合、同じエラーが大量に発生している場合があります。

まずは、エラーの発生源を確認しましょう。

プラグイン・テーマファイルがエラー発生源である場合

エラーが発生しているディレクトリに/wp-content/plugins//wp-content/themes/が含まれている場合は、プラグインやテーマがエラー発生源であると考えられます。ディレクトリ名から対象のプラグイン・テーマを特定しましょう。

ディレクトリ名からプラグイン・テーマが判断できない場合は、ファイルマネージャーで対象ディレクトリを開き、readme.txtを確認してみましょう。冒頭に説明書きがあるため、ここからプラグイン・テーマ名を判断することができます。

MEMO
エラー文の一部をGoogleなどで検索することで、解決方法や同じ現象に悩んでいる人の口コミなどが見つかる場合があります。

データベースがエラー発生源である場合

[01-Apr-2022 00:00:00 UTC] WordPress データベースエラー: [エラー内容]のように表示されている場合、データベース上で何らかのエラーが起きていることになります。

よくあるケースとしては、プラグインやテーマ内部からのデータベース読み込みにおいて不具合が起きていることがあります。エラー内容の中に含まれているテーブル名(例:'wp_aioseo_posts')やディレクトリ(例:'/themes/cocoon-master/header.php')から関係していそうなプラグインを判断しましょう。

3. 関係していそうなプラグイン・テーマ等を一時的に無効化する

まずは対象プラグイン・テーマを一時的に無効化することで、リソース圧迫が改善されるかどうか確認してください。

リソース圧迫の原因であると分かったら
  • プラグインやWordPress本体のバージョンが古い場合はそれが原因となっている場合があるため、バージョン更新を行う
  • 使用しているバージョンでバグが報告されている場合もあるため、プラグインの公式ページ等で確認する

バージョン最新化などで改善しない場合は、類似機能を持つ別のプラグインの利用を検討するか、プラグイン等のアップデートを待つなどの対策が考えられます。

注意
個人ブログなどで紹介されているプラグインの独自コード修正等は、仕様をよく理解していないと更なる不具合に繋がる場合があります。「よくわからないままいじってしまい不具合が起きた」といった場合には、自動バックアップによる復元をご利用ください。