web-dev-qa-db-ja.com

IP経由でウェブサイトにアクセスするのはドメイン名よりも速いですか?

現在、大量のトラフィックを受信して​​います(1日あたり100万ページビュー以上)。 DigitalOceanのロードバランサーの背後に4つの16GB RAM 8 CPU nginxサーバーがセットアップされています(これは彼らが追加した新機能です)。IP経由で各サーバーに直接アクセスすると、サイトただし、ドメイン名に移動すると、1〜3秒の遅延があるようです。これはロードバランサーが正しく機能していませんか?それともドメイン名の問題ですか?ラウンドロビンとスティッキーを使用していることに注意してくださいセッションドメイン名の設定に関して確認する必要があるものはありますか?

4
Wayne

ここで役割を果たす可能性のあるものはたくさんあります。ロードバランサーを使用する場合のおおよその手順は次のとおりです

  1. ロードバランサーのDNSルックアップ
  2. 時間をロードバランサーに接続します。これがhttpsの場合、通常は数回の往復であるため、遅延が影響します
  3. ロードバランサーの処理時間
  4. サーバーのロードバランサーDNS検索時間(おそらくキャッシュされている)
  5. LBはサーバーへの接続を開きます(おそらく既存の接続を再利用します)
  6. LBはリクエストをサーバーに送信します
  7. LBはサーバーがリクエストを処理するのを待ちます
  8. LBが応答を受信します
  9. LB応答をクライアントに送り返します

ロードバランサーを使用しない場合の手順は次のとおりです

  1. サーバーに接続します。これがhttpsの場合、通常は数回の往復であるため、遅延が影響します
  2. サーバーにリクエストを送信します
  3. サーバーがリクエストを処理するのを待ちます
  4. 応答を受け取る

これは4ではなく9ステップであり、大きな違いがあります。

Webページテスト を使用して2つを比較できます。これにより、より多くの情報が得られます。テストを実行し、結果の解釈についてサポートが必要な場合は、投稿を編集してから、更新を確認したい人にコメントでタグを付けます。

Rowanが以下で指摘するように、遅延は少なくとも帯域幅と同じくらい重要です。データセンターの遅延は非常に低く、ほとんど無視できますが、サーバーへのすべてのラウンドトリップには時間がかかります。 TLS 1.3はこれに役立ち、コンテンツをユーザーに近づけるコンテンツ配信ネットワーク(CDN)を使用することも多くの場合に役立ちます。

7
Tim