この記事は約4分で読めます。
本文は約2432文字です
mixhostからサーバーマイグレーションの通知が来た!高負荷の原因は?

私はこのサイトを含めて多数のサイトを運用中で、それらのサイトはmixhostの1つのサーバーにて運用しています。
最近サーバー負荷を上昇させてしまったために、mixhostからサーバーマイグレーションの通知が来ました。
要は、あなたのサイトは負荷が重いので他の空いているサーバーに強制的に移転するよ!という連絡がきました。
mixhostから来たメールには、移転先のサーバー番号が書かれていましたが、移転先のサーバーはまっさらのサーバーではなく、単純に負荷が低いサーバーを選んでいるようです。
これだけ聞くと大した話ではないように思えますが、サーバー負荷の削減を実施する必要があるとも書かれていました。
この記事では、mixhostのサーバー負荷が高くなった原因とマイグレーションの案内が来た時の話をまとめています。

mixhostはサーバー負荷が高いと収容サーバーが変更になる
mixhostはユーザーごとに使用できるリソース制限が決まっているので、どんなに負荷が高くても他のユーザーには影響がないハズでした。
しかし、cPanelでリソース使用状況でfaultが何度か発生しているというのが理由で、収容サーバーの変更、つまり、マイグレーションの対象になったようです。
mixhost収容サーバーごとの負荷状況の確認方法は?
mixhostのサーバー番号と負荷状況は以下のサイトで確認できます。
そもそも、自分が契約しているサーバー番号の負荷状況は定常的に高いことがわかりました。一方で、移転先のサーバーの負荷状況はほぼ0という状況でしたので、mixhostの全てのサーバーから空いているサーバーを選んで移転させていることが伺えます。
mixhostのマイグレーションでは移転先の収容サーバーは選べません
mixhostサーバーマイグレーションの実施日は選べない
サーバーマイグレーションの通達のメールには日にちが書かれており、通常のサーバーマイグレーションとは異なり、実施日は選べないようでした。
サーバーマイグレーションが行われても、基本完全コピーされるのでマイグレーション期間中もサイトは公開したままで問題は起きませんから、実施日は大して重要ではありません。
mixhostに連絡すれば、変更してくれる可能性は高いと思いますが、通常のマイグレーションでは実施日が選べるのに、日にち指定されるというのは覚えておいた方がよいです。
mixhostサーバー負荷上昇の原因解明と対策が必要
サーバーマイグレーションはmixhostが勝手にやってくれるので問題ないのですが、負荷上昇させてしまったユーザー側では負荷が上昇してしまった原因を解決する必要があります。
マイグレーションの通知のメールには、サーバーの負荷上昇の問題が解決しない場合、マイグレーション後にサーバーのリソースリミットを厳しくするという通達がありました。
Cloudflare CDNとページキャッシュプラグインを併用
mixhostでの運用サイトには、ページ数が数万ページあるサイトがいくつかあります。ページ数が多いサイトは、負荷が高くならないようにCloudflareのCDNを利用しているサイトでしたので、逆に負荷が高くなってしまったが意外でした。
負荷が増えた心当たりといえば、ページキャッシュプラグインを有効にしたことぐらいです。それが直接的な原因かどうかはわからないので、変更して負荷状況を確認していくしかありません。
Super Page Cache for Cloudflareプラグインのfallbackキャッシュを有効化していた
Cloudflare CDNを動的ページでも静的ページとしてキャッシュしてもらえるプラグインとして、Super Page Cache for Cloudflareプラグインがあります。

このプラグインにはfallback cacheというページキャッシュ機能があり、Cloudflareのキャッシュが無い場合にページキャッシュが表示される仕組みです。
この機能を有効にしたところサーバーの負荷が高くなりました。
ページキャッシュをLitespeed cacheプラグインに変更
ページキャッシュ部分をLitespeed cacheに置き換えたところ、サーバー負荷が下がりました。

Super Page Cache for Cloudflareプラグインは、他のページキャッシュプラグインとの併用を推奨していません。そのため、プラグインが持つページキャッシュ機能をつかっていたのです。
実際には、他のページキャッシュプラグインと機能的にバッティングしないように設定すればLitespeed cacheとの併用も可能でした。
plugin load filterで不要なプラグインを読み込まないように変更
管理画面でだけ使用するプラグインは通常時は読み込む必要がありません。
管理画面だけで必要なプラグインは、plugin load filterを使って読み込みを止めます。

まとめ
mixhostはCloudlinuxで収容サーバーの他のユーザーの影響を受けないといわれていますが、サーバー負荷が高くなりfalutが発生するようになると、他のサーバーへのマイグレーションの通達と、サーバー負荷を下げる要請が来ます。
サーバー負荷上昇のほとんどの場合は、自分で作ったスクリプトが暴走していたり、プラグインの影響ですので、発生し始めた時期と自分が行った行動を対応ずければ、原因がわかって対処することはできるでしょう。

コメント