【Xserver】500 Internal Server Errorが頻繁に起こるようになった(泣)

Xserverを使っているサイトにアクセスが多くなってきたのか、スクリプトを変更したからなのか、どのか重くなっているのか分からないけど500 Internal Server Errorが頻繁に起こるので調査してみました。

WS000001

サイトはこんな状態に(泣)

Xserverのログファイルでエラーを確認

WS000003

ログファイルを観てみる。

WS000004 WS000005

Xserverのログを見ると以下のようなエラーが20個弱続いてるときは500 Internal Server Errorになっている。

[Fri Jul 08 10:24:10 2016] [error] [client 1**.***.***.**] sh: fork: Resource temporarily unavailable

[Fri Jul 08 13:34:05 2016] [error] [client **.**.**.*] SystemException in API_Linux.cpp:172: setuid() failed: Resource temporarily unavailable
[Fri Jul 08 13:34:05 2016] [error] [client **.***.**.*] Premature end of script headers: index.php

こんなの ↓ も表示されたけどこれは現在の症状とは違う。

WS000000

カテゴリー ウィジェットの「投稿数を表示」をやめる

調べているとこの投稿数を表示をやめたことによってMySQLの負荷が軽減したと書いてあるブログがあったので真似てみます。

外観 > ウィジェット

WS000001

原因はこれではなかったみたいで引き続き500 Internal Server Errorが発生する。

W3 Total Cache を復活

General settings

  • Page Chache
  • Browser Cache(デフォルトでオンになっている)

をオンにしてみる。

アクセスが多すぎるようではなく、なにかのプラグインかスクリプトがサーバーに負担をかけて500 Internal Server Errorになるようす。

このプラグインを入れても解決しなかった。

P3(Plugin Performance Profiler)

これでプラグインが原因か調べてみる。

WS000003

WS000004

アクセス無いサイト(Sma)

WS000001

WS000003

あららら・・・

WS000000

途中で、500 Internal Server Errorが起こってストップしちゃった(泣)

でもログはできてたので見た。

WS000006

WS000000

Jetpack by WordPress.comが一番負荷をかけてるみたい。外せないしなぁ・・・

でもプラグインで負荷掛かり過ぎているということは無いようす。

WS000005

他のグラフを見るとWordPress Popular Postsに負荷が一番かかってるみたい。

別のサイト(Be)

WS000001WS000005

アクセス多い別のサイト(Ko)

WS000002

Jetpackのモジュールを減らす。

Screen Shot 2016-07-09 at 05.58.45

WS000003

減らしてもあまり変わらない・・・

WS000004

WP4.3頃から?なった未解決の問題

自分のドメインのURLを貼り付けると以下のように表示される。

これが高負荷の問題に影響しているのだろうか?

WS000000

こちらはいまだ未解決。

MySQLのオーバーヘッド最適化

PhpMyAdminでwp_postsを見ると、オーバーヘッドが45.3MiB溜まってました。

WS000001

テーブルを最適化すると負荷軽減になるようです。

WS000003

これでMySQLの負荷対策は良さそうです。

WS000004

不要なカスタムフィールドを削除

カスタムフィールドはMySQLテーブル「wp_postmeta」に入っています。

こちらをPhpMyAdminから直で削除しても良いのですが、クエリー発行したり調べたりするのがメンドウそうだったのでプラグインの力をかります。

Delete Custom Fields

WS000003

WS000000

カスタムフィールドはほぼテスト的に作ったのみなので全て削除してもおかしくはならないかもしれませんがプラグインで使用してるかも、一応調べて削除します。

  • browser:不明 Total posts: 0だった
  • email:不明 Total posts: 0だった
  • is_addr:不明 Total posts: 0だった
  • name:不明 Total posts: 0だった
  • os:不明 Total posts: 0だった
  • site_email:不明 Total posts: 0だった
  • status:不明 Total posts: 0だった
  • to:不明 Total posts: 0だった
  • version:不明 Total posts: 0だった
  • views:不明だけど削除しちゃった。
  • schat_display:Live Chat V2用だと思う、プラグインストップしたらカスタムフィールドから無くなった
  • comment_form_freeze_message:不明 削除
  • email:不明 Total posts: 0だった
  • is_ads_removed_in_page:テーマsimplicity 削除
  • is_comment_form_freeze:テーマsimplicity 削除
  • is_nofollow:テーマsimplicity 削除
  • is_noindex:テーマsimplicity 削除
  • ratings_average:WP-PostRatings用カスタムフィールドから無くなった。
  • ratings_score:WP-PostRatings用プラグイン停止
  • ratings_users:WP-PostRatings用プラグイン停止
  • page_type:不明 削除

 削除していて気づきましたが、500 Internal Server Errorになりにくいサイトはカスタムフィールドが少ないような気がしました。

そして、Delete Custom Fieldsでの削除も速い!倍くらいのスピードで削除していきます。

3つのサイト操作しましたがカスタムフィールドが少なくアクセスが多いサイトはDelete Custom Fieldsでの削除が速い。

TinyMCE Templatesプラグインが原因?

[Sun Jul 10 06:27:53 2016] [error] [client 180.36.180.118] WordPress \xe3\x83\x87\xe3\x83\xbc\xe3\x82\xbf\xe3\x83\x99\xe3\x83\xbc\xe3\x82\xb9\xe3\x82\xa8\xe3\x83\xa9\xe3\x83\xbc: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 1 for query SELECT * FROM `sma***_sma***` WHERE `id` =  made by do_action(‘wp_ajax_tinymce_templates’), call_user_func_array, TinyMCE_Templates->wp_ajax_tinymce_templates, TinyMCE_Templates->get_templates, apply_filters(‘tinymce_templates_preview’), call_user_func_array, do_shortcode, preg_replace_callback, do_shortcode_tag, call_user_func, sma***fi_shortcode, sma***_**fi, referer: http://***.jp/wp-admin/post-new.php

以下、エンコードするとデータベースエラー

\xe3\x83\x87\xe3\x83\xbc\xe3\x82\xbf\xe3\x83\x99\xe3\x83\xbc\xe3\x82\xb9\xe3\x82\xa8\xe3\x83\xa9\xe3\x83\xbc

TinyMCE テンプレートとめた。

自作プラグイン使ってないサイトはTinyMCE テンプレートは影響してないかもしれない。

原因は自作プラグインかもしれない

よく見ると自作プラグインのテーブルを見に行ってるのでそこら辺も修正してみる。

sma**.phpの75行目くらい、preg_replaceの中身が無いかもしれない。

エクス***の定数がギア***で無いのでおかしくなったもよう。

修正したけど、75行目じゃなかった。

まだ止まる(泣)

wp-admin/post-new.php

ショートコード[sma***a*** id=”363″]を入れて記事を新規作成するとなるみたい。

原因不明だけど500 Internal Server Errorにならなくなった

原因は究明できなかったけど、とりあえずはこれだけやって治まったみたい。

もう少し様子を見ていきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする