MixHostが重い!?快適に使うために行った10のこと~MixHost奮闘14

WordPressをエックスサーバーからMixHostに移転しました。
プランはスタンダード(月額980円、CPU2コア、メモリ1GB、容量20GB)にしました。

理由としては、この「もりべや」の新規記事が作成できなくなったから、というもので、エックスサーバーに問合せをしても明確な答えを教えてもらえず、リソースを増やすことができるMixHostに移転しました。

今までのシリーズを見てきてもらったらわかりますが、エックスサーバーからの移転後は相当に苦しい毎日で、本当に時間が取られるし、うまくいかないMixHostのことが心の中でもやもやしている状況でした。
今は快適に使えるようになったので、ここまでやったすべてのことをまとめておきたいと思います。



0.CPU負荷はどうなっているか

やったことを紹介する前に、記事作成段階のCPU負荷率(1週間)を載せておきます。
左端がCPU制限を食らった名残です。




対策を施すことで、CPUの消費量が安定してきているのがわかると思います。
ブログ合計で1日2万PVくらいですが、20%未満に抑えられてきていますから、ここまでくると「たしかにMixHostは安定して速い」といえます。
ちなみに、今回の対策は主にアクセスが集中しているサイトで行ったものであり、全部のサイトで共通で行ったわけではありません。
通常通りに運営できるために試行錯誤して結果を検討するためです。



1.LiteSpeed Cacheの導入とミスの修正

おそらくMixHostの醍醐味であり、運用の肝となるのがLiteSpeed Cacheのプラグインです。
高速化のためにLiteSpeed Cacheサーバーを導入しているからです。
 → WordPressでLiteSpeed Cacheを使用して高速化する方法
その中で大きく設定をミスってしまったのは、モバイルの部分でした。↓

Enable Separate Mobile View
モバイル向けのキャッシュのON/OFFを設定します。レスポンシブデザインのWebサイトではない場合、チェックを入れる事をおすすめします。


Simplicityは完全レスポンシブルにするかどうかを選べます。
メニューを出すためには「完全」を選ぶとだめなので、選んでおらず、結果として、モバイルページのキャッシュがうまく生成できずに負荷が高いままでした。
この状態だと、モバイルなのにPC表示されるなどの不具合も発生します。

この部分を運営に指摘されて、修正するとグッとCPU使用量が減りました。



2.何度も読むこむ画像サイズの縮小

PVが1日7,000くらいあるブログを移転したのですが、CPU負荷が増えてどうにもならなくなりました。
このサイトでは、アイコン画像を何度も読む込む使用なのですが、その画像が圧縮しておらず1つが30kBくらいありました。
プラグインで圧縮されるから大丈夫だろうと、作成段階では思っており、エックスサーハーでは何の問題もなく動いていました。

どうもこの画像を何度も読むこむことが相当な負担であったようです。
アイコン画像は使用サイズが決まっていたので、コードで縮小表示せずに元々の画像自体を24✕24ピクセルのように縮小して読み込みにしました。
サイズは一気に1kB程度に減り、読み込み負荷もかからなくなりました

またアイコン画像をどこでも配置するのではなく、テキストでいいならテキストリンクに置き換える、デザインを考えて減らすなどの見直しもしました。

もしかしたら、LiteSpeed Cacheの設定を直したのも良かったのもしれませんが。




3.CPU制限の解除を待つ

cPanelで、CPU負荷を見ることができて、「CPUおよび同時接続の使用状況」に行くと、CPUリソースについて確認できます。

制限中は以下のメッセージ

Your site has been limited within the past 24 hours
CPU resources were limited for your site


制限がないと以下のメッセージ

Your site had no issues in the past 24 hours


監視単位は24時間なのかもしれませんので、制限を食らったら1日大人しくしているといいと思われます。
制限時は60%程度まで抑えられていました。
エックスサーバーからMixHost(スタンダードプラン)に移転しまして、もう2日目でいきなりCPU制限をくらいました。。。 あいやーー・・...

CPU制限に関しては、ブログの移転の関係でどうしてもあれこれをしないといけなかったわけですが・・・分散してやるなどの方法も必要なのかなと思います。
制限が解除されるとウソのようにサクサクになります。
こうしたリソース管理がうまいというか、個別に割り当てられるのがMixHostの強みであり、特徴ですね。


4.PHP5.6を使用。PHP7は使わない

MixHostのPHP7を使うことができて、使うと従来の5系と比べて2倍(PHP系の処理が?)も高速で動くという話です
というわけで、導入してみたのですが、なんと記事が表示されなくなりました。
使っているテーマやプラグインで表示環境は違うとは思いますが、リスキーだなと感じました。

またPHP7を推奨しているブロガーを自分が普段触れているソースの中では見ないこともあり、PHP5.6を使うのが現段階ではベターだと思われます。
記事が表示されないことに数時間気付かずに放置していたので、これは大きかったです・・・。
ブログの信用やら、売上やら、いろんな部分で影響が出る選択になりました。

ブログが大きくなってくると、なかなかリスクを取りづらくなるので、詳しくない方は使わないほうがいいと思われます


5.Cfilteringの停止

CPU負荷を下げるために、P3 (Plugin Performance Profiler)で負荷の高いプラグインを検出してみたところ、悪名高い「WordPress Popular Posts」に大差をつけて、Cfilteringが高負荷をかけていました。



このCfilteringは関連記事を強化する機能があります。
素人の勝手な推測ですが、アクセスしたユーザーの次の行動を監視しているため、ページアクセスがある度に起動するプラグインであり、その度に記録をするので、データベースに負荷をかけているのではないかということ。

正直、関連記事の強化程度なのにここまで高負荷(といってもプラグインの中での話)をかけるのであれば、使う意義はありません。
ので、即刻停止です。

※ エックスサーバーからMixHostに切り替えると、エラーが出ますので、「停止 → 有効化 → 起動チェック」をもう一度行う必要があります!
今回の結果はそのエラーがなくなった後で、行ったものです。



6.WordPress Popular Postsの停止と代替

WordPress Popular Postsは相当に便利なプラグインであるけれども、アクセスがある度にデータベースにアクセスして重くさせるプラグインでもあります。
諸刃の剣。

1日のPVが5,000を超えるあたりから負荷が大きくなっていると考えたほうがいいのでなはいかなと思います。
このプラグインでPVと人気記事を出力していたわけですが、やめました。
以下の記事に書いたようにしました。

便利だけど、負荷が高くて有名なプラグインに「WordPress Popular Posts」があります。 これはサーバー運営会社にとっては...

人気記事はSimple GA Rankingで出力(Google Analyticsのデータを流用なのでデータベースの負荷なし)
記事ごとのPVは、Simplicityの製作者であるわいひらさんのお力を借りて、個別記事のページのみJetpackのPVを表示するようにしました。
Jetpackの関数取得は時間がかかるので。




もしも、これが有効であるとなるとテーマアップデートについてくる可能性もあります。
Jetpackの特徴としては、個別記事のPVページが用意されているところですね。
一番端のグラフを押すとそのページに飛べます。

人気記事の出力もJetpackで可能ですから、Popular Postsの代替は可能ではあります。あとはデザインかな。
やはり、WordPress Popular Postsの方が遥かに便利で、見栄えもいいです。
が、サーバー負荷には代えられないレベルに来ているので、やはり「なし」の選択肢を取らざるを得ません。


7.サポートのアドバイスでプラグインを停止

新規記事が作成できなくなったので、サポートに相談すると、以下の2つの負荷が高いので停止すると改善されるのではないかと言われ、停止しました。

・WP External Links
・Crayon Syntax Highlighter

また、PV取得用に使っていた次のものは、WordPress Popular Postsよりも負荷は高くないが、重くなるなどしたら停止を考えたほうがいいと言われて、停止しました。

WP-PostViews
post-views




8.サイトデザインをシンプルに

サイトが重くなる原因やサーバー負荷の原因は、データーベースアクセスと画像の読み込みです。
他サイトからの画像読み込みも時間がかかる要因でもあります。

こうしたことを元に考えると、画像を極力使用しない、FC2のカウンターを使用しない、アフィリエイトリンクをバンバン貼りまくらないといった、どんどんシンプルな方向になっていきます。
それがいいかどうかは、サイトのデザインと速度のどちらを重視するかですね。

デザインを重視と言っても、結局貼りたい画像なんてものは、アフィリエイトの広告くらいなものですから、それを控えたらいいだけなのかなと。
モバイルアクセスが7~8割位もあることを考えると、サイドバーなんてもう死語になりつつもありますし、3カラムのブログなんて時代遅れです。

スマホアクセスを基本においたデザインであることがこれからは大事なことだと思いますから、スピード重視が本当にいると思います。
ので、サーバー負荷を減らすことにおいても、デザインを極力シンプルにしていくことが大事だと思います。


9.SSL化

多くのレンタルサーバーで無料のSSLが利用できるようになりました。
MixHostも無料で対応です。
しかもMixHostでは、HTTP/2に対応しているのでデータの送受信が格段に速くなるようです。

このHTTP/2は最近の規格であるため速いわけですが、SSLに対応していないとだめなようで現段階ではレンタルサーバーではMixHostだけが対応しているようです。
SSL化はサイトのセキリュティを向上させるとともに、表示速度の向上にもなっているので、MixHostなら絶対にSSL化はしたいですね。


10.All In One SEO Packの停止

記事ごとにSEO対策ができるプラグインです。
サイトマップの設定やSNSへの拡散用のOGP設定も可能です。
が、テーマSimplicityに用意されているし、SEOってのは、それほどする必要もないのかなと思います。

というのも、GoogleがSEO対策を明確にしておかないと適切な検索結果を得られないというようなことはないと思うから。
特定のキーワードを強調したいなどのことかあるかもしれませんが、本文中に書くことで問題ないと思います。
差があると言う人もいるんでしょうけども、どうなんでしょうかね。

そして、このプラグイン重いんです。
P3で分析するとプラグインの中でも重いとなります。
ネットでも「重い」と検索すると出ますので、必要が無いので停止しました。




終わりに

ここまで対策を行ってMixHostを快適に使用することができるようになりました。
体感的には、たしかにエックスサーバーよりも絶対値を比べると速いかもという気がします。
この辺はきちんと計測結果で評価するべきことですが。

エックスサーバーはどんぶり勘定であり、MixHostは個別管理であるという違いが今回の移転では大きなとまどいになりました。
結果としては、プランごとのPV数の目安を教えて下さい | mixhostヘルプセンターにあるような形で運用は余裕でできるのではないかなと思います。

エコノミー:50万PV/月
スタンダード:100万PV/月
プレミアム:200万PV/月
ビジネス:400万PV/月
ビジネスプラス:600万PV/月


MixHostはCPUとメモリリソースを増やすことができる特殊な運営ですから、長期運用に向いていると思います。
エックスサーバーと違って、月額480円から可能ではありますが、年間計画なので、お金はいっきにかかるのがネックです。


今回のサイトをいじることで感じたのは、サイトを長期運用していくなら、必要な部分と不必要な部分を明確にしてメンテ・管理をしていくことが必要だということです。
5年、10年と運用していけるように、やっていきたいと思います

おそらくスタンダードプランのままずっといけると思いますので、エックスサーバーは解約します。