ブログが遅い原因はWordPressではなかった!

※本ページはプロモーションが含まれています

WordPress
Photo by Christiaan Colen
スポンサーリンク

ここ数ヶ月、ブログの管理画面や更新・投稿など、反応が鈍くて、WordPress記事投稿では、CloudFlareを通してタイムアウトの症状も多発し、いわゆる重くなっておりました。

だいたい重くなる原因と言うと、WordPressのプラグイン関連やデータベースのMySQL関連による負荷が多いかと思います。
しかし、WordPressのプラグインを確認・削減、データベースの異常・最適化など試みても、ほぼ変化なしといったところでした。

参考記事

ちょっと、WordPressから外れて、Linux周辺を調べてみました。

ブログ運用に関するプログラムでは、私の環境では、Nginx、MySQL、php-fpm辺りが該当します。

こちら↓の記事を参考にさせていただきました。

nginx、php-fpm、MySQLの設定では、ほぼ改善されているので、変更する部分は見当たらず。

次に、記事内でも明記されていたSwap関連を調べてみました。
Swap解放では、こちら↓の記事も参考にさせていただきました。

[Linux]Swap領域をクリアする方法 · DQNEO日記
開発に使ってるLinuxサーバで、Swap領域が大量に使用されて動作が重くなっていたのでSwap領域を解放するためにやったことのまとめ。 単純にサーバ再起動してもよいのだけど、それだと作業中のEmacsが落ちてしまうので開発効率がおちる。 ...

Swapの調査

少し長くなりますが、Swapの調査

$ vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0 3801012 158216  41976 602180    1    1    34    26    2    1  4  0 95  1  0
 1  0 3801012 157084  42288 602204    0    0   344    96 1581  446 34  1 61  4  0
 1  1 3801012 149768  42452 602256    0    0   164     4 1259  354 24  2 66  8  0
 1  0 3801012 128564  42552 602308    0    0   104     0 2180  789 43  5 48  4  0
 2  0 3801012 121472  42552 602308    0    0     0     0 2036 1793 34  2 64  0  0
....
$ dstat -Tclmdrn
Terminal width too small, trimming output.
--epoch--- ----total-cpu-usage---- ---load-avg--- ------memory-usage----->
  epoch   |usr sys idl wai hiq siq| 1m   5m  15m | used  buff  cach  free>
1504663417|  4   0  95   1   0   0|0.06 0.15 0.11|1097M 43.4M  591M  145M>
1504663418|  0   0 100   0   0   0|0.06 0.15 0.11|1097M 43.4M  591M  145M>
....
$ ps alx | grep mysql | awk '{printf ("%d\t%s\n", $8,$13)}'
292     /bin/sh
188836  /usr/libexec/mysqld
$  ps alx | grep php | awk '{printf ("%d\t%s\n", $8,$13)}'
71656   php-fpm:
72228   php-fpm:
976     php-fpm:
70352   php-fpm:
72296   php-fpm:
68900   php-fpm:
71432   php-fpm:
72216   php-fpm:
71704   php-fpm:
75012   php-fpm:
74500   php-fpm:
$ free -m
             total       used       free     shared    buffers     cached
Mem:          1876       1733        142         61         45        593
-/+ buffers/cache:       1095        781
Swap:         4031       3711        320

かなり、Swap領域が大量に使用されていました。

Swapの解放

# swapoff -a && swapon -a
swapoff: /dev/mapper/vg_xxx1213uf-lv_swap: swapoffは失敗しました: メモリを確保できません

メモリに空きがないので、案の定、メモリを解放できません。

ブログ関連のプログラムを停止
# service stop mysqld
# service stop nginx stop
# service stop redis
# service stop php-fpm

この後、再度メモリ解放を行ってみましたが、同様のエラーでswapoffが失敗

$ free -m
             total       used       free     shared    buffers     cached
Mem:          1876       1733        142         61         45        593
-/+ buffers/cache:       1095        781
Swap:         4031       3711        320

プログラムを停止してもメモリが足りないようなので、psやtopで更に調べてみたところ、アンチウイルスソフトのAVGが原因でした。

# service stop avgd

AVGを停止し、Swap解放を再度行う

# swapoff -a && swapon -a
# free -m
             total       used       free     shared    buffers     cached
Mem:          1876        715       1161        279         10        315
-/+ buffers/cache:        389       1487
Swap:         4031          0       4031

ようやく解放出来たようです。

ここのブログ環境では、さくらのVPS2Gプランなので、さすがに物理メモリ2GBでSwapに4GBを大量に使われていたのが原因のようで、ひとまずSwap問題は解決といったところです。

そろそろ、メモリ増強したいかも。

コメント

タイトルとURLをコピーしました