さくらVPSでWordPressが重かった

はてブロでWordPressのことを書くなど浮気性だと怒られそうですが,オタクコンテンツへのよしなし事を綴るブログをWordPressで作っています.

が,特段記事も多くなく.画像も全然貼り付けていないにも関わらず.表示されるまで時間がかかる…!chromeデベロッパーツールで確認したところ,TTFBがやたら遅い.

 kinsta.com

TTFB(Time To First Bite)はサーバーからのデータの最初のバイトを受け取るまでにかかる時間のこと,と上記サイトで解説されています.これが3秒とか長い時は5秒くらい(!)あるのが遅い原因でした.

改善させた結果がこれ↓

f:id:euony:20181109220625p:plain

sからmsの世界へ転生できました!ここまでやったことをまとめます.

  

環境

・さくらVPS

CentOS 6.9(final)

・HDD100GB メモリ1GB

Apache 2.2.15

WordPressのテーマ:Godios.(高速と定評の無料テーマ)

 

-------

1.サーバ側が原因かWordPress側が原因か調べる

静的なサイトを持っていたので,TTFBの値を比較しました.

どっちも遅い…サーバ側に問題がありそうです.

 

2.サーバの重い原因をざっくり当てる

www.sakito.com

こちらのサイトでは

・CPU負荷
・メモリ不足
・ディスクI/O負荷
・ネットワークI/O負荷

 を大きな原因として挙げています.

 

他には以下のサイトが参考になりました.

サーバの負荷を調べるコマンド集その1:CPUの確認 | アロハ技術者ブログ

qiita.com

 topコマンドやpsコマンド,sarコマンド等を使って原因を切り分けていきます.dstatコマンドの存在を知ったのでインストールしました.各プロセスの状況が見やすいです.

当環境ではロードアベレージも低く,CPUも使っておらず,io待ちもなく,ネットワークのioも詰まってなさそう………んんんメモリがパンパン

 

3.メモリを圧迫している要因を探る

原因がメモリだとアタリがつきました.以下の記事を参考にしつつ,Apache(httpd)とmysqlのプロセスがメモリを喰っていると特定.

tweeeety.hateblo.jp

 

以下の2記事は同じ方の投稿で,当環境と同じ状況が起こっていた模様.大変参考になりました.httpdのプロセス数制限と,mysqlのテーブルキャッシュの値を設定.

qiita.com

qiita.com

これで大丈夫だろうと思ったらまだfreeのメモリが少ない.ps -auxで確認するとclamdというプロセスがリソースを喰っていました.cron.dailyにClam Antivirusというウイルスソフトの定期スキャンを入れているのですが,それが残りっぱなしになっちゃった…?killで終了させるとやっとメモリがいい感じに.

 

4.WordPressの重いプラグインを特定する

この時点で静的サイトとWordPressのブログを表示させてみました.静的サイトは爆速になったものの,WordPressの方はまだ重い… となるとWordPressの方に問題があるわけですが,超速テーマを使っているし記事数も片手で数える程度なのでプラグインが怪しい.

P3(Plugin Performance Profiler)というプラグインの読み込み速度を測定するプラグインを入れていざチェック……

 

Jetpack…犯人はお前か!

 

アクセス解析系のプラグインなのですが止めてみました.爆速になりました.

 

-----

重くなっていたのはサーバ側とWordPress側の複合コンボ,というオチ.WordPress使っといて損はないかな,と導入したら確かに勉強になりました…