ハイパフォーマンスWebサイト フロントエンドのパフォーマンスの重要性から続いています。
Webサイトの高速化 ルール9 DNS Lookupsを減らそう!
July 20, 2007
——————————————————————————
http://developer.yahoo.net/blog/archives/performance/より翻訳。
Steve Souders は Yahoo!の「Chief Performance Yahoo!」です。
これは彼の「パフォーマンス改善のベストプラクティス」を書いた一連のブログです。
——————————————————————————
DNSはhost名とIPアドレスを(電話帳が人の名前と電話番号をそうするように)マッピングします。ブラウザにwww.yahoo.comと打ち込むと、DNSのリゾルバがサーバのIPアドレスをブラウザに返します。
DNSはコストがかかります。通常、ホスト名をIPアドレスに変換するのに20-120ミリ秒程度必要とします。ブラウザはDNSLookUpが終わるまで、なにもダウンロードすることは出来ません。
DNSLookupはパフォーマンス改善のためにキャッシュされます。キャッシュはプロバイダかLAN内のキャッシュサーバ上に維持されますが、ユーザのPC上でもキャッシュされますが、PCのOS上のDNSキャッシュ(Windowsなら”DNS Client service”)にも維持されます。ほとんどのブラウザも、OSとは別にそれ自身のキャッシュを持っています。ブラウザはDNSレコードをが自分のキャッシュにある限り、OSにリクエストは投げません。
IEならば30秒(DnsCacheTimeoutレジストリで設定)、FireFoxならば1分(network.dnsCacheExpirationで設定)がデフォルトのキャッシュ時間です。FireFoxの場合は1時間まで延長できます。
クライアントPCのブラウザ・OS両方のDNSキャッシュが空っぽの場合、DNSLookUpの数は、そのページ上で使用されていユニークなhost名の数と同じです。これにはページ中のURL、画像、JavaScriptファイル、スタイルシート、Flashオブジェクトなどで利用されているhost名が含まれます。ユニークなhost名の数を減らすことは、DNSLookupの数を減らすことにつながります。
しかし、ユニークなhost名を減らすことは、潜在的にページに対するダウンロードの並列数を減らすことになります。DNSLookUpを減らせばレスポンス時間を短縮しますが、ダウンロードの並列数を減らすことは逆の結果につながります。
私のガイドラインは、コンポーネントのhost名を2から4の範囲に収めることです。これでDNSLookupを減らし、ダウンロードの並列数をあるレベルに維持します。
Steve Souders
———————————————————————
◆◆訳注◆◆
ホスト名のレベルではかなり効果が薄いのでは。まずapacheの設定をちゃんとしたほうがシステム全体には効果的。
———————————————————————
エントリ一覧
Webサイトの高速化 フロントエンドのパフォーマンスの重要性
Webサイトの高速化 ルール1 HTTPリクエストの数を減らそう!
Webサイトの高速化 ルール2 CDNを使おう!
Webサイトの高速化 ルール3 Expiresヘッダーを追加しよう!
Webサイトの高速化 ルール4 コンポーネントを圧縮しよう!
Webサイトの高速化 ルール5 CSSは上に!
Webサイトの高速化 ルール6 scriptは下に!
Webサイトの高速化 ルール7 CSSのExpression()は使わない!
Webサイトの高速化 ルール8 JavaScriptとCSSは外部ファイルに!
Webサイトの高速化 ルール9 DNS Lookupsを減らそう!
Webサイトの高速化 ルール10 コードのサイズを圧縮する!
Webサイトの高速化 ルール11 リダイレクトを避けよう!
Webサイトの高速化 ルール12 スクリプトの重複に気をつける!
Webサイトの高速化 ルール13 ETagを正しく設定する!




