WordPress の表示が遅かったので色々と頑張ってみた …
ここ最近、何故か?WordPressの表示速度が遅く、ブログの更新時やら確認時にストレスを溜め込んでいたのすが、少し手の空いた時間があったので
色々と調べたり調整を始めてみたら
ドツボに嵌る(爆)
という…orz
最終的には、満足はいかないものの当初の1/3ほどまで WordPressの表示時間を短縮 する事が出来ましたが、原因は何て事はないプラグインが原因だったんですけどね…
今回は「そこ」に辿り着くまで実際に行った諸々な作業の備忘録です…(笑)
激遅プンプン丸!WordPressの表示速度
実際の所、この禁断の果実のサイトの表示ですが一番遅い時でアクセスから読込みが終わり全てのソースが表示されるまで30~45秒(号泣)
速い時でも15秒(涙)
と、どう考えても
普通じゃない状況
要するに異常です異常w
PageSpeed Insights でサイトの表示時間を計測してみても結果は同じでして、どうやら?借りているVPS(さくらのVPS)サーバーの処理速度の問題という訳でもなく
途中で読み込み自体が止まってしまっているのか?
その後、一気に読み込まれて表示終了
借りているVPSのプランも下から二番目(1GBプラン:CPU仮想 2Core/SSD 30GB)の奴なので、それこそ「一瞬で全て表示しろ!」なんて無茶な要望はありませんが
せめて
3~5秒以内(SEO的にはこれでも激遅)で表示されたら
御の字ですね!?
などと思っていた矢先に
Googleにおいて6月16日付近で検索順位にて大きな動きがあり、今回の順位変動による影響は、パンダアップデートやペンギンアップデートほどのインパクトはないものの通常よりも大きく順位が変動したサイト様があるようです。海外アルゴリズムツールや情報サイトでも確認かつ取り上げられているみたいでGoogleで大きなアルゴリズム調整が行われてることが考えられるとのことです。またGoogleより2018年7月からページの表示速度をモバイル検索のランキング要素として組み込むことがアナウンスされ、ものすごく遅いとユーザーに感じさせるサイトでない限りそこまで影響は出ないとのことですが今回の順位変動と合わせて表示速度も確認してみることをおすすめします。
こんな情報をキャッチ…
ものすごく遅いとユーザーに感じさせるサイト
って、表示完了まで30~45秒もかかっていたら
完全にコレに該当!?(汗)
こんな感じで
何とかサイトの表示速度を改善しようと思ったのですが、ブログ本体(WordPress)というよりも構築後、絶賛放置プレイ状態のVPSサーバーの設定(もしくは通信環境)が影響しているのでは?
と思い、色々と作業に当たってみたのですが…
さくらVPSでサーバ(CentOS6)の通信を速くする?
さくらのVPS、速度、遅い、などで検索をかけると決まって上位に表示される内容が「ethtoolでtsoを無効にする」という記事でしたが、どうやら?当時VPSサーバーを構築した際の
トラブルで有名だったのか?
さくらのVPSにおいて、不特定のVPS収容ホストとクライアント環境(プロバイダ等)の組み合わせにより、さくらのVPSからのダウンロード方向の通信に遅延が発生する場合があります。
と、さくらインターネット公式でもQ&Aにて対応方法が記載されていましたので、絶賛放置プレイ状態のVPSサーバーにログインして
このQ&Aに沿って対応してみました!が
まず tso ってなんぞ?(笑)
TSO(TCP Segmentation Offload)とは
TCP通信の際にセグメント分割タスクの処理をCPUからNICに移管する技術のこと。理論的にはTSOによりTCP通信の処理をCPUとNICに分散させ、CPUの処理をNICに肩代わりさせることにより浮いたCPUリソースを有効活用しようという考え方。しかしながら、環境によってはこの機能により通信の劣化やインターフェイスに過負荷がかかった際に通信が途切れる、パケットロスが発生するなどの不具合が発生する可能性がある。
ethtoolでtsoを無効にする
何だかよく判りませんが(笑)要するにネットワークカードに任せていた通信の割振りをCPUに戻す事みたいですね!?利用しているVPSサーバーはCentOS6だったので
その指示に従い
1 |
#ethtool -K eth0 tso off |
(管理者権限)ethtoolでtsoを無効にしてみたら
30秒~45秒もかかっていたサイトの表示が5秒程に短縮された(この時だけでした・涙)のです!これは効果があった!と思いましたが、どうやら
このやり方は一過性の為
恒常的にtsoを無効化するには、後述の手順を行い再起動後も自動でtsoをoffにする事にしてみたのですが
- ファイル名
/etc/udev/rules.d/50-eth_tso.rules - 内容
ACTION==”add”, SUBSYSTEM==”net”, KERNEL==”eth0″, RUN+=”/sbin/ethtool -K eth0 tso off”
既に下に記載した内容で 50-eth_tso.rulesには記述されていた模様です(汗)あの表示時間の短縮は何だったのでしょうね!?(笑)
1 2 |
ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*", RUN+="/sbin/ethtool -K %k tso off" ACTION=="add", SUBSYSTEM=="net", KERNEL=="ens*", RUN+="/sbin/ethtool -K %k tso off" |
案の定、上記の記述で起動時にtsoを無効化しているようで
1 |
#ethtool -k eth0 |
強制再起動後に上記のコマンド(こちらの -k の k は小文字)で、tsoの状態を確認してみたところ
1 2 3 4 |
tcp-segmentation-offload: off tx-tcp-segmentation: off tx-tcp-ecn-segmentation: off tx-tcp6-segmentation: off |
tsoは、ちゃんと起動時に無効となっていたみたいです…
勿論、サイトの表示もtsoは無効になっているのに何故か当初の通りに(あの5秒で表示された期間は何だったんだ!?)30~45秒程に回復(笑)
はい!問題が元に戻りました!(爆)
もしかしてプラグインが原因?
もう、半分諦めていたんですけどね!?サイトの表示が遅い原因をVPSサーバーに求めたのが間違っていたようでして、WordPress、遅い、とかで検索してみれば
普通に
プラグインについて
色々な情報が出てくるんですよね!?(笑)
特に WordPress Pupular Posts と Count Per Day この二つのプラグインについて「動作が重い」「遅い」といった報告が多くありましたので
まずは 禁断の果実まとめ でも大活躍していらっしゃるプラグイン
WordPress Pupular Posts
の設定を見直す事にしてみました…
WordPress Pupular Posts の履歴を削除
WordPress Pupular Postsは、記事の閲覧数(全期間、30日間、7日間など)それぞれの履歴をデータベースにして保管しているらしいのですが
とりあえずログが全員を対象に無期限で保管されていた様ですので
- 閲覧を記録する対象者:全員 → 閲覧者のみ
- ログ上限:無効 → 30日間
- WPPキャッシュ期限ポリシー:キャッシュする → キャッシュしない
と設定を変更してみました!
アクセスの多いサイト(日@1万~2万)ではキャッシュは有効にした方が表示が速くなるそうですが、後述しますが今回は「その」キャッシュが速度低下の原因みたいでしたので
キャッシュしない を選択!
また、データサンプリングも有効にした方がデータベースに書込みする回数が減って速度改善に繋がるそうなのですが、サンプル率(デフォルトでは100)の設定次第では
記事のアクセス数が100ごと増える
みたい?な現象に陥ってしまいましたので、データサンプリングは無効のまま様子を見る事にしました!
上記の様に設定を変更後、一番大事な事!
キャッシュを空にする
下から二番目のボタンですよ
で、一度肥大していたであろうキャッシュをクリアしました!
このキャッシュをクリアすることで「人気のある項目を毎日保存」したデータ(要するに当日、7日間、30日間の履歴データ)が0クリアされます!
一番下のボタン「全てのデータを削除」は、全期間のデータが消えるっぽかったので、まとめページで使用していた記事の閲覧数(全期間)が消えてしまうかも?(トラブルで消してしまった記事はコチラ)と思い
実行していません(汗)
上記にある様に現在の所、WordPress Pupular Posts を使用しているのは、禁断の果実まとめ ページで全期間の閲覧数データを使用して
カテゴリー別にランキング表示していますので
こういった使い方をしていないのであれば、一度 WordPress Pupular Posts を削除(使用停止ではなくアンインストール)してみるのも良いかもしれませんね!?
さて、ここまで作業を行ってみて実際にサイトの表示が少しは速くなったのか?
【これは便利】あなたのWebサイト表示のどこが遅いかを一発で調べるブックマークレット
で、確認してみたところ…
1.7秒で表示完了!(爆)
今まで表示完了するまで30秒~45秒もかかっていたのに、いきなり約17倍!どこぞの赤い大佐でも3倍ですからね!?大佐もびっくりな速度に改善!(笑)
まぁ、でもこれ
何回か計測した内で一番良かった数字をスクリーンショットしたんですけどね!?(汗)
それでも調整後の現在は、平均すると3秒~4秒台で表示されているようになりましたので、効果てきめん!これなら天下のGoogleさんから
ものすごく遅いとユーザーに感じさせるサイト
という不名誉なレッテルを貼られる事は回避できそうですよね!?(笑)
ちなみに
この後、もう一つのプラグイン Count Per Day の設定も調整(たまっていたキャッシュをクリア)したのは言うまでもありません、が
記事が長くなりそうなので
その内容の掲載は割愛(爆)
下記の参考にした記事をご覧下さい<(_ _)>
まぁ、要するに
WordPressの表示速度が遅くなったら履歴を付けているプラグインのキャッシュを削除すると速度が改善されるというお話でした…(この記事の前半部分は丸っきり意味がなくなりましたが)
今回、参考にさせて頂いた記事一覧
- [CentOS][さくらVPS]サーバの通信を速くする
- WordPress Popular Postsが原因で表示が重くなった時に変更したい設定
- Count per Dayが重い軽くしたい場合の設定方法対処法
スポンサーリンク