[Sitecore][Site Performance]サイトの速度チェックタスク

サイトの速度チェックタスとの話をしたい。速度チェックはサイト公開する前と後に行います。

 まず、サイトを公開する前に行うページのロードテストをします。ページロードのテストするトールはたくさんあります。私はよく使うのはFirebugです。理由は手軽く使えるからです。

20140111_01

言うまでもなく、CMSのパフォーマンス·チューニング·ガイドをもとに、キャッシュのサイズの調整するcache.aspx一覧

20140111_02

公開後もしくは、外からアクセスができると、下記のツールを使ってテストをします。

1.ユーザ数のロードテスト

これまでにいろいろなツールを使ってきましたが一番お気に入りはこのロードインパクト(http://loadimpact.com/)です。無料なバージョンを使っています。これにて、サイトへリクエストするユーザ数を仮定したテストが可能です。私はユーザー数100で、ページのロードタイムがユーザー数の増加にかかわらず安定しているならばOKとします。

20140111_03

2.ページリクエストのロードテスト ページのリクエストのロードには、http://www.webpagetest.org/ を使っています。無料なバージョンを使っています。

20140111_04

私なりの使い方を説明します。たとえばサイトコアジャパンを例とします。まず、ホームページをテストします。

20140111_05

注意するのはこの“First Byte” 最初のバイトまでの時間は、使っているブラウザがWebサーバに接続すると、ブラウザは、ステップ数を実行する必要があります。それはDNSルックアップ、初期接続、待つ時間、そして、データを受信する時間となります。これをいかに短くするのは重要です。このテストの場合は0.457sだと早い方です。ページによってその差が出てきます。他社のツールを含むページや、検索のペーになどになると、この最初のバイトが増えるわけです。たとえば、同じサイトコアジャパンで検索でSitecoreをかける1.67sがかかります。

20140111_06

20140111_07

2秒以下のロードタイムは早い方だと思います。ただ、それぞれサイトが扱うデータのようにもよりますが、3秒以上かかると何らかの対策が必要かと思います。普段、私は下記の順でテストをします。

.ホームページ とセクションのランディングページここはよく他社のツールが使うので、時間がかかるコントロールをUpdatepanelを使って同期で更新したり、キャッシュを使ったりして速度を上げます。

.インナーページ

ここはサイトコアのキャッシュ設定で十分です。

3.サーチのリスティングページ

ここはいつも頭が痛くなるところです。たとえば、ブログのランティングページでよく見かけるドロップダウンコントロールがあります。カテゴリ、作者、トピック、もしくは地域。ユーザに以下に早く検索したいコンテントをヒットするため、それぞれのドロップダウンに表示されるアイテムはかならず既存のアイテムに使用されているものでなければなりません。普段の手順はカテゴリのリストを取得、そして、それぞれのカテゴリが必ず最低一つのコンテントアイテムが使用していることを確認し、ドロップダウンコントロールに追加します。データ量によってこれは時間がかかります。サイトことでキャッシュを設定しても、検索が時間が掛かってしますので、別のキャッシュが必要になります。

14r0h9zd20140111_08

お客さんによって、カテゴリって滅多に変わらないので、.net のキャッシュを使ってこれらのドロップダウンコントロールをキャッシュします。毎晩アプリケーションプールのリサイクルで更新をする。もっと頻繁に更新をしたいなら、キャッシュをカスタムのデーターベースにて設定し、新しいカテゴリが追加されると、デーだベースのキャッシュを更新します。フロントエンドユのドロップダウンコントロールは検索をせず、デーだーベースのキャッシュより取得。その違いは、.netのキャッシュのコード追加は、一時間も掛からないに対して、データーベースでの更新は、コードだけではなく、もし、既存のカスタムデーターベースをないなら、もっと時間が掛かります。ただ、柔軟性から、カスタムデーターベースのほうが私は好みます。.netのキャッシュを使用する場合は設定ファイルでその更新時間を設定するようにしています。データーベースでキャッシュを使用する場合は、スケジュールタスで更新しでもいいで、特定のアイテムにて保存時のイベント(item:saved)を使って更新しでもいい。お客さんがどれほど頻繁に更新したいのよって設定すればいい。

 

 

 

Uncategorized