『高性能Webサイト構築ガイド』ルール9-DNS検索を削減
2959 ワード
DNS検索の削減
DNSはホスト名をIPアドレスにマッピングし、DNSで検索される応答時間はDNS解析器(通常、あなたのISPによって提供される)に依存し、要求圧力、あなたとそれまでの距離、帯域幅速度を負担します.
DNSキャッシュとTTL
DNSルックアップは、パフォーマンスを向上させるためにキャッシュされ得る.このキャッシュは、あなたのISPまたはローカルエリアネットワーク内の特殊なキャッシュサーバで発生することができますが、ここでは、独立したユーザーのコンピュータで発生するDNSキャッシュを探求します.例えば、ユーザがホスト名を要求すると、DNS情報はオペレーティングシステムのDNSキャッシュに残り、その後、ホスト名の要求に対してDNS検索を過度に行う必要はなく、少なくとも短時間では不要になる.
多くのブラウザは独自のキャッシュを持ち、オペレーティングシステムのキャッシュから分離されています.ブラウザがそのキャッシュにDNSレコードを保持している限り、オペレーティングシステムがこのレコードを要求するのに面倒ではありません.ブラウザ・キャッシュがレコードを失った場合にのみ、オペレーティング・システムにアドレスを尋ねます.オペレーティング・システムがキャッシュによってリクエストに応答したり、リモート・サーバにリクエストを送信したりすると、潜在的な速度低下が発生します.
設計者は、IPアドレスが変化し、キャッシュがメモリを消費することを知っています.したがって、キャッシュ内のDNSレコードは周期的に消去され、消去の頻度がどれほど高いかは、多くの異なる構成設定によって検出されるべきである.
DNSキャッシュに影響する要因
サーバは、レコードがどのくらいキャッシュされるかを示すことができます.検索されたDNSレコードには、生存時間(Time-to-live,TTL)の値が含まれています.この値は、クライアントがレコードをどのくらいキャッシュできるかを示します.
OSキャッシュはTTL値を考慮しますが、ブラウザは通常、この値を無視し、独自の時間制限を設定します.また、Keep-Aliveプロパティは、TTLとブラウザの時間制限を同時に上書きすることができます.ブラウザとwebサーバが通信してTCP接続が開いたままであればDNS検索を行う理由はありません.
ブラウザは、キャッシュされたDNSレコードの数にも制限があり、キャッシュされたレコードの時間にかかわらず、より多くのドメイン名にアクセスすると、より古いDNSレコードが破棄されます.しかし、オペレーティングシステムは依然としてこの記録を残している可能性があります.これは局面を転換することができます.
TTL値
異なるサイトのTTL値の差が大きく、多くのサイトがサーバ、仮想IPアドレス(VIP)、または共同位置決めがオフラインになったときに迅速なフェイルオーバを提供するように努力しています.これも多くのTTLを提供する理由です.MySpaceは、現在のネットワークトポロジにとって、フェイルオーバは重要ではないため、長いTTLを選択しています.
クライアントが受信したDNSレコードの平均TTL値は、最大TTL値の半分に過ぎない.DNS解析器自身もDNS記録に関するTTLを持っているためである.ブラウザがDNS検索を行う場合、DNS解析器が返す時間は、その記録されたTTLの残り時間である.最大TTLが5分であれば、DNS解析器が返すTTL範囲は1~300秒である可能性がある.
ブラウザの視野角
Microsoft Windows上のDNSキャッシュはDNS Clientサービスによって管理されます.ipconfigコマンドを使用して、DNS Clientサービスを表示およびリフレッシュできます.ipconfig /displaydns
ipconfig /flushdns
再起動はDNS Clientサービスキャッシュを空にすることもできます.ブラウザを再起動すると、ブラウザキャッシュは空になりますが、DNS Clientサービスキャッシュは空になりません.
IE
IEのDNSキャッシュは3つのレジストリ設定によって制御される
一部のデフォルト値は次のとおりです.DnsCacheTimeout-30分KeepAliveTimeout--1分ServerInfoTimeout--2分
DNSサーバTTLの値が30分未満であれば、ブラウザによるDNS検索の頻度に与える影響は小さい.ブラウザがDNSレコードをキャッシュすると、TTL値として30分が使用されます.エラーが発生した場合、DNS検索のリフレッシュはこれよりも速くなり、通常、短いTTL値(30 min以下)はIEでDNS検索の数を増やすことはありません.
Keep-Aliveでは、1分間空いているまでTCP接続が持続的に使用されます.接続は永続的であるため、DNS検索は不要です.
ServerInfoTimeoutの値は2分です.Keep-Aliveがないにもかかわらず、ホスト名が2分ごとに再利用され、エラーが発生していない場合は、DNS検索に専念する必要はありません.
ネットワーク・オペレーション・センターがDNSの変化によってトラフィックを転送しようとすると、1つのIP上のトラフィックが転送されたが、IPがまだ実行されている場合、古いDNSレコードを使用するIEユーザは、DNSを更新するのに少なくとも30分かかる.少なくとも2分ごとにアクセスするアクティブなユーザーは、エラーが発生するまで古いIPを使用します.
Firefox
次の設定があります.
1.network.dnsCacheExpiration-1分2.network.dnsCacheEntries-203.network.http.keep-alive.timeout-5分
DNS検索の削減
クライアントのDNSキャッシュが空(ブラウザとオペレーティングシステムが両方)の場合、DNS検索の数は、Webページ内の唯一のホスト名の数と等しい.唯一のホスト名の数を減らすことで、DNS検索の数を減らすことができます.
一意のホスト名の数を減らすと、ページ内のパラレルダウンロードの数が減少する可能性があります.
コンポーネントを少なくとも2つずつ配置することをお勧めしますが、4つのホスト名を超えないでください.
また、サーバがKeep-Aliveをサポートしていることを確認することで、DNS検索を減らすことができます.
ipconfig /displaydns
ipconfig /flushdns