CloudFlareについてもっと調べて見ました。時々、遅くなるのが本当にCloudFlareのせいかどうかわかりませんでしたから。
どうやら、「アクセスの間隔が開いてしまうと、その後のアクセスは遅くなる」というのは、薄々感じていました。
ならば、アクセスの間隔が開かないように、一定の間隔でアクセスをすればいいわけです。クラウドフレア側のキャッシュ仕組みのせいなら、改善されるはずです。そこで、無料のサーバー監視サービスを利用しようとしました。2年前、調べた所で生き残っているのは数社しかありません。うつろいやすい業界ですね。ここも。
そして新しい会社もたくさんできていました。どうせなら、どんなサービスをやっているか調べるために、手を出して見ました。その内の1社が無料で15日間全機能を使えるというので、試しました。ここはインターフェイスが日本語に翻訳されていていいのですが、エラーメッセージや都市名が文字化けしまして、結局英語設定で試しました。その話は別の記事にしましょう。長くなりそうです。
この会社のサービスに、世界各地に存在するモニタリングポイントからのアクセス速度、多分数値を見るかぎり、html+css(+js??)を読み込み終わるまでの速度を表示してくれるものがありました。
試していくうちにわかったことは色々あります。
1.やはり初回のアクセスは遅い
原因は、推測するにクラウドフレアのDNSが遅いせいでしょう。同時にアクセスが行くので返ってくる値がバラけるのですが、5箇所くらいから同時にアクセスされた場合、DNSルックアップの時間が1秒から8秒くらいまでバラけます。まあ、考えてみれば無料でとても多くのドメインに対してproxyサービスを行なっているわけです。そりゃ、遅いでしょう。
とはいえ、DNSの情報は、そのバックボーンのISPなり、サーバーなりのDNSにキャッシュされるわけです。一度キャッシュされたら、直接クラウドフレアのDNSへはアクセスされませんから、間隔があいた場合の初回だけ特に遅いのでしょう。
2.どうもTTLが短か目らしい
サーバーやバックボーンのDNSにキャッシュされる情報はTTLという値で、どの程度の長さキャッシュされるか、指定されています。これが、短めになっているのかも知れませんね。自分でDNS立てれば調べることも出来ますが、そこまでやるつもりは今ありません。どなたか、興味のある方の実証を待ちたいと思います。(フィードバックください。 :D )
TTLがみじかいと想定すれば、間隔を開けた後のアクセスが遅くなる理由が納得できます。まあ、ちょっと時間を開けると、ちょっとDNSのルックアップに時間がかかり、長く開けるとDNSのルックアップがもっと長くなるのは、DNS自身の仕組みと、クラウドフレア自身のDNSサーバーの反応が重なりあっての現象だと思われます。推測を重ねても意味がありませんので、これ以上は考えるのをやめました。
遅い場合の原因が、ほぼDNSのルックアップに時間がかかっているので、こんな風に思い込んでいるのですが、それだけで全部の理由が片付けられるわけでありません。ネット上を行き来する情報は、不確定要素もたくさんありますので、全部を推測するのは無理ですね。
3.世界中から、ほぼ均一のロード時間が得られる。
このサイトで試した場合、トップページで、世界中のほとんどの都市から、ロード時間1秒前後のアクセススピードが得られます。まあ、モニタリングポイントに選ぶ都市は、ネットワークにとっても重要なポイントなので、当然、アクセス環境は良いですから、早いです。地方都市からアクセスする場合はもうちょっと遅くはなるでしょうが、それでもまずまずの速度です。
Htmlはキャッシュされないため、もともとのサーバーにアクセスに行きます。その際にアクセス側、サーバー側、両方とも一番近くのproxyサーバーを通じ、自前で利用している回線状態の良いルート経由でアクセスしているんでないでしょうかね。距離的な影響は、若干あるかなという程度で、ほぼ均一のロードスピードです。まあ、htmlファイルは小さいですから、DNSの解決に時間がかからなければ、読み込みに時間はかかりませんしね。
4.アメリカ国内からはやっぱり早い
西海岸から東海岸まで、このサイトのトップで500msから650msくらいで読み込んでいます。このサイトはアメリカのフェニックスにホストされており、キャッシュされないhtmlへのアクセスについて有利ですから、当然一番早いです。
ヨーロッパですとサーバーに近い所で900ms、離れた所で2000ms、突発的にミュンヘンが6000msなんてこともありますが、これはたまたま途中の回線の都合で遅くなっただけと思われます。同じドイツでもケルンはいつも800ms近く、サーバーに近いらしく安定して良い成績です。ミュンヘンは良くても遅めで2000ms近くかかっていますから、ドイツ国内の回線の問題でしょうね。調べたら、ドイツはフランクフルトにサーバーがおいてありました。
我が日本ですが、800msから1200ms、多分モニタリングポイントは東京ですから、サーバーの直ぐ近くのはずです。htmlを読みに行く距離の分だけ、アメリカより遅いと考えれば、納得の数字です。(もし、日本のサーバーでクラウドフレアを利用している方で、協力していただければ、測定して、実証できるのですが。なにせ、手持ちのドメイン全部使っているので、今は日本にサーバー作って試す余裕が無いのです。)
アジア圏の主要都市も概ね1200msから2000msに入っています。
シンガポールと香港にサーバーがありますが、東京よりは遅いです。もちろんhtmlの読み込みに時間がかかっているからでしょう。香港は日本経由でしょうし、シンガポールは日本経由と直行のルートがあります。
一番気になるのは、モニタリングポイントには中国があるのです。どこの都市か書かれていません。しかし、中国からのアクセスが、香港やシンガポールより早いこともあるのです。中国にはサーバーが無いはずです。ならば、シンガポールや香港のサーバー経由してアクセスするから、遅くなるのが当然ですが、良い時は東京よりほんの僅か遅いだけです。可能性としてはサーバーが置いてあるか、またはアメリカ直結の回線がとても早いかです。それで、アジアの回線を通らず直接アメリカのサーバーへアクセスへ行っているかでしょう。
中国にサーバーを置く危険性を考えると、まあ置いているとは考えにくいので、アメリカ直結回線高速説を信じたいと思います。もしくは、日本とつながっているがその回線が早いということですね。これも有力な考え方です。
これでだいぶ、クラウドフレアを使う有利・不利な点が分かって来ました。
| DOMを3Dで見せてくれるFirefox拡張< 前 | 次 >CloudFlareの使い処 |
|---|
| < 前 | 次 > |
|---|