Xserverを使っているサイトにアクセスが多くなってきたのか、スクリプトを変更したからなのか、どのか重くなっているのか分からないけど500 Internal Server Errorが頻繁に起こるので調査してみました。
サイトはこんな状態に(泣)
Xserverのログファイルでエラーを確認
ログファイルを観てみる。
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
こんなの ↓ も表示されたけどこれは現在の症状とは違う。
カテゴリー ウィジェットの「投稿数を表示」をやめる
調べているとこの投稿数を表示をやめたことによってMySQLの負荷が軽減したと書いてあるブログがあったので真似てみます。
外観 > ウィジェット
原因はこれではなかったみたいで引き続き500 Internal Server Errorが発生する。
W3 Total Cache を復活
General settings
- Page Chache
- Browser Cache(デフォルトでオンになっている)
をオンにしてみる。
アクセスが多すぎるようではなく、なにかのプラグインかスクリプトがサーバーに負担をかけて500 Internal Server Errorになるようす。
このプラグインを入れても解決しなかった。
P3(Plugin Performance Profiler)
これでプラグインが原因か調べてみる。
アクセス無いサイト(Sma)
あららら・・・
途中で、500 Internal Server Errorが起こってストップしちゃった(泣)
でもログはできてたので見た。
Jetpack by WordPress.comが一番負荷をかけてるみたい。外せないしなぁ・・・
でもプラグインで負荷掛かり過ぎているということは無いようす。
他のグラフを見るとWordPress Popular Postsに負荷が一番かかってるみたい。
別のサイト(Be)
アクセス多い別のサイト(Ko)
Jetpackのモジュールを減らす。
減らしてもあまり変わらない・・・
WP4.3頃から?なった未解決の問題
自分のドメインのURLを貼り付けると以下のように表示される。
これが高負荷の問題に影響しているのだろうか?
こちらはいまだ未解決。
MySQLのオーバーヘッド最適化
PhpMyAdminでwp_postsを見ると、オーバーヘッドが45.3MiB溜まってました。
テーブルを最適化すると負荷軽減になるようです。
これでMySQLの負荷対策は良さそうです。
不要なカスタムフィールドを削除
カスタムフィールドはMySQLテーブル「wp_postmeta」に入っています。
こちらをPhpMyAdminから直で削除しても良いのですが、クエリー発行したり調べたりするのがメンドウそうだったのでプラグインの力をかります。
Delete Custom Fields
カスタムフィールドはほぼテスト的に作ったのみなので全て削除してもおかしくはならないかもしれませんがプラグインで使用してるかも、一応調べて削除します。
- 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:不明 削除
- dra
- be
- sma
削除していて気づきましたが、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にならなくなった
原因は究明できなかったけど、とりあえずはこれだけやって治まったみたい。
もう少し様子を見ていきます。
コメント