Tag: サーバー

61月

[WordPress]素人がキャッシュ系プラグインやCDNを安易に導入するのは危険

以前、キャッシュ系プラグイン『W3 Total Cache』や『DB Cache Reloaded』、CDN『CloudFlare』を利用していましたが、許容できないレベルのタイムラグが発生してしまいました。

知識がなければ、原因を特定できず、致命的な欠陥となる恐れがあります。質のいいサーバーを利用すれば、100万PV/月程度までなら、キャッシュ系プラグインやCDNは不要であるため、素人は安易に手を出さないことをおすすめします。

 

キャッシュ系プラグイン&CDNとは

WordPressを利用したサイトは、その構造上、アクセスがある度に動的にページを生成して表示させています。

キャッシュ系プラグインは、動的に生成する様々な要素をキャッシュ化し、あらかじめ用意しておくことで、負荷を経験したり、コンテンツ表示速度を速めたりできます。

便利なものではあるのですが、実のところ、仕組みはかなり複雑です。

どの要素をキャッシュ化するかによって、ページキャッシュ、オブジェクトキャッシュ、データベースキャッシュなど、様々に分類でき、それぞれに対応しているプラグインが無数に存在します。こちらのページがうまく分類してくれています。

WordPressキャッシュ系プラグインの比較とサイトに適した選び方 | ゆっくりと…

つまり、あれがいいから、これがいいからと、仕組みもよくわからずにキャッシュ系プラグインを多用してしまうと、機能がかぶってしまったり、機能を充分に発揮させられなかったり、酷いときには不具合が出て逆にパフォーマンスが低下したりするわけです(後述しますが、体験済みです……)。

またCDNとは、コンテンツ・デリバリ・ネットワーク(Contents Delivery Network)を意味し、従来は大容量コンテンツをストレスなく配信するために用いられてきたシステムです。

が、無料で使える『CloudFlare』などの登場により、個人ブログの負荷対策・コンテンツ表示速度改善にも使われるようになりました。きちんと機能すれば、キャッシュ系プラグインよりも大幅な効果を期待できるようです。

ただしこれも、仕組みをきちんと理解できないと、うまく機能しなかったり、不具合が出たときに対処できなかったりします。

 

GTmetrixでは明確に数値が向上するものの、許容できないタイムラグが発生

当サイト『Handmade Future !』では、2013年秋頃まで、キャッシュ系プラグイン『W3 Total Cache』『DB Cache Reloaded』と、CDN『CloudFlare』を併用していました。

GTmetrixでは、明らかに数値が向上し、GoogleとYahoo!の指標でダブルAを獲得できていました。
2014-01-06_1027

(なので、きちんと動作してくれれば、これで正解なのだと思います)

が、当サイトで使用しているテンプレート『Sahifa』との相性が悪かったのか、はたまは別の要因によるのかわかりませんが、リンクをクリックしてからページの読み込みが開始されるまでに、3秒や5秒といった、とても許容できないレベルのタイムラグが発生してしまっていました。

プラグインのオン・オフを切り替えてみたり、『CloudFlare』を切ってプラグインのみにしてみたりと、時間をかけて思いつく限りの検証はしてみたのですが、結局、知識の無さがアダになり、原因を特定できませんでした。

最終的には、数字よりも体感を優先すべく、キャッシュ系プラグインとCDNの利用を取りやめました。

上記グラフのとおり、現在はGTmetrixでの評価は下がっていますが、体感速度は飛躍的に向上しています。

Latest Performance Report for: http://yorikanekeiichi.com/ | GTmetrix

 

高品質サーバーを利用するのが最大の負荷対策

現在、『Handmade Future !』では、共有サーバー最高峰とも言われる『シックスコア』のレンタルサーバーを利用し、キャッシュ系プラグインやCDNは一切使用していません。

記事がバズったときは、該当記事のみを、手動で、シックスコアのキャッシュ機能である “Xキャッシュ” でキャッシュ化しています(サイト全体をキャッシュする設定にすると、すべてのページで同じ記事が表示されてしまう不具合が発生したため、現在の運用に落ち着きました)。

これだけで、同時接続800人超にも対応できました。
2013-12-29_1705

体感ではパフォーマンスの低下は感じなかったので、同時接続1000人くらいまでは問題なく行けそうな雰囲気です。

同時接続800人以上となると、Yahoo!のトップニュースに取り上げられる以外には、なかなか考えられない水準です。

100万PV/月程度までの個人ブログなら、負荷対策としてのキャッシュ系プラグインやCDNは不要です。また、ページ表示速度も見てのとおりで、これ以上を求めることももちろん可能ですが、必要充分だと個人的には考えています。

ロリポップやさくらインターネットの格安プランでは、いくらキャッシュ系プラグインやCDNを導入したところで、基本スペックの低さをごまかすことはできません(さくらインターネットの500円プランから、シックスコアへ乗り換えているので、実感しています)。

つまり、高品質サーバーを利用するのが最大の負荷対策であるわけです。おまけに、素人でも確実に効果を発揮できます。

 

キャッシュやCDNは必要になったら専門家に依頼すべし

もし、月間300万PVクラスのサイトに成長したり、ページ表示速度を本気で1秒未満にする必要に迫られたりすれば、キャッシュ系プラグインやCDNも必要になってくるでしょう。

それどころか、共有サーバーでなく、専用サーバーやAWSも必要になるかもしれませんね。

そこまできたら、お金をかけて、しっかりとした知識のある専門家に依頼すれば済む話だと思います。

個人的には、知識に不安があるのなら、高品質サーバーを利用し、キャッシュ系プラグインやCDNには手を出さないのが、ベストの選択肢だと思います。

試行錯誤してみるのも面白いは面白いですし、手軽にできてしまいはするのですが、トラブルが起きたときに対処できないのでは、リスクが大きいと感じました。

2911月

さくらインターネットの共有レンタルサーバーで負荷テストしてみました。

昨日UPした2記事が、はてなブックマークのホッテントリ入りしました。

初心者が必ず押さえておきたいWordPressプラグイン7つ
http://yorikanekeiichi.com/wordpress-plug-in-443.html

一目で惚れる。WordPressの厳選レスポンシブ・テンプレート5つ
http://yorikanekeiichi.com/wordpress-responsive-template-459.html

実は、一般的なブログサービスからWordPressに乗り換えて一番心配だったのは、「共有のレンタルサーバーがどれくらいの負荷に耐えられるか」だったんです。

今まではニッチなメディア運営が主だったので気にする必要がなかったんですが、当WEBマガジンは情報発信の一般的なノウハウやハウツー、ケーススタディを発信していくので、それなりにアクセスを集めることを想定しています(『Handmade Future !』は今月半ばに立ち上げたばかりです)。早いうちにどれくらいの負荷に耐えられるのか知っておきたかったので、いい機会だとGoogle Analyticsと睨めっこしていました。

※ちなみに、以前はてなダイアリーで書いていた頃は、はてブホッテントリTwitterとYahoo!ニュースの参考記事掲載が同時直撃するようなこともありました(さすがに超級のブロガーを抱えているだけあって、はてなのサーバーは余裕で耐えてました)

利用しているのは『さくらのレンタルサーバ スタンダード』です。500円 / 月。

 

アクティブユーザ100人までは順調

一発目、テンプレート5選の記事がホッテントリTwitterに取り上げられたのが、昨晩(11/28)の21:46頃。

ホッテントリTwitterは50ブックマーク以上の記事が対象ですが、これはけっこう高いハードルです。一定の評価を受けた最新記事だけが紹介されるとあってフォロワーはかなりアクティブ。TwitterやFacebookを介して拡散が始まります。

Google Analyticsのリアルタイム解析で、アクティブユーザ数がわかります。右上に時刻が表示されています。ツイートされた直後ですね。

 

ほんの4、5分で100人突破しました。 ここまでサイトをチェックしていましたが、重くなることもなく、サーバーは順調に稼働していました。 お、意外に耐えられるんだね、と安心したのです、が。

サーバー側で絞っているのかな?

しかし。

この後、徐々にアクティブユーザが減り出します。あれよあれよという間に10人~20人に落ちてしまいました。

サイトをチェックすると……接続できません!!(^^;)

 

共有サーバそのものはスペックが高いので、アクティブユーザ100人程度で落ちるとは思えません。考えられるのは、

    1. ちょうど偶然に、同じサーバーに入っている(他人の)サイトが大ブレイクして、サーバーに接続しにくくなった
    2. このままだとサーバーが重くなる可能性がある(=共有している他人に迷惑が掛かる)ので、サーバー側でうちのサイトからのアクセスを制限した

Google Analyticsではアクティブユーザが完全に0人になるわけではなく、10人20人は接続できていたようなので、おそらく後者ではないかと考えています。

制限が解除(?)されるまで、おおよそ40分~50分かかりました。

 

結論

『さくらのレンタルサーバ スタンダード』は、同時接続100人程度までは大丈夫。それ以上は「もっと高額プラン使ってくださいねー」ということかと思います。

ちなみに、さくらインターネットそのものは信頼性が高く、安心して使っています。困ったときにGoogle検索すると解決策がすぐに見つかるほどQ&Aにも力を入れているんで、初級~中級者にもおすすめできますよ。

月500円で同時接続100人まで、をどう考えるかですねー。

追記:その後、しばらく運用していて、お昼時でアクティブユーザ200人、夜でも平均150人程度で耐えるケースもありました。場合によりけり、みたいですねー。参考までに!
TOPページ サイトマップ 更新履歴