WordPressサイトのメモリリーク?を止める

Use the 8% OFF coupon "GBvalentine", Grab the Best Valentine’s Day Gifts Best Deals from Just $25 @GearBest! Ends: 1/23/2017.
絆創膏

前回はこのWordPressサイトを構築しているサーバでOpenVSのdcachesizeというの変化を調べてみました。

この計測結果から、BackWPupプラグインでスケジュールしているジョブがdcachesizeの増加を抑える可能背があることがわかりました。

今回はこの前回の結果を用いて、dcachesizeの増加の抑制に挑戦したいと思います。

データベースのチェック頻度を変える

これまでのdcachesizeの増減確認では、BackWPupプラグインの「DB Check」というジョブが効果がありそうと感じました。

そこでBackWPupプラグインで「DB Check」のジョブの実行頻度を上げてみます。

まずはデータベースをチェックするBackWPupのジョブを作成します。

BackWPupプラグインをWordPressにインストールすると、WordPressのダッシュボードの左側に「BackWPupメニュー」が追加されます。

image

このメニューで「Add New Job」を選択します。これで新しいジョブできるので、「General」を選択してジョブの設定画面に入ります。

SnapCrab_NoName_2013-9-11_20-58-42_No-00

General画面では、Job Nameの欄に適当な名前を入力したあと、Job Tasksのチェックボックスで「Check database tables」のみを選択します。Log Filesの項は空欄にしてしまいましょう。

image

General画面の入力が完了したら上部の「Schedule」を選択します。

Schedule画面では、Start Jobでは「with WordPress.com」選択し、Schedule typeでは「basic」をSchedulerでは一番下の「hourly」を選択します。hourlyのところの数値のドロップダウンボックスはジョブを実行する”分”なので、適当な値を選んでおきます。

image

以上の入力を終えたら右下の「save changes」ボタンを押して完了です。

上記の設定だと、毎時30分にデータベースのチェックが実行されるようになります。

効果を確認する

それでは1時間ごとにデータベースチェックするようにした状態で、dcachesizeがどのように変化するのか調べてみます。

以前と同じように2分ごとに/proc/user_beancountersのdcachesizeを記録してグラフ化してみます。横軸は起動してからの経過時間で、下記のグラフは4日間と20時間ほどのデータとなっています。

image

このグラフからわかるように、起動直後は徐々に増加したものの、その後はdcachesizeが4,000,000~6,000,000で上下していることがわかります。

それでもやや右肩上がりの傾向が見えるのは心配ですが、とりあえず20時間でサーバが停止してしまうということはなさそうです。

これで解決か?

ひとまずサーバ停止問題はなくなりましたが、まだ油断できません。

微妙にdcachesizeが増えている傾向がある点とそもそも以前はこのような問題がなかった点が気になります。

なんとなくデータベースが関連するような気がしますが、時間がないので今回はこの対策でしばらくしのごうと思います。

まとめ

今回はOpenVPSのdcachesizeが増え続ける問題に対し、データベースチェック処理を1時間おきに行うという方法でひとまず対処できることを紹介しました。

なんだか不安が残る対処ですが、これでしばらく様子を見てみたいと思います。

次回はサーバをより簡単に監視するためにMuninというツールをインストールします。