より速いリクエスト応答
Categories:
有料ユーザーがAdGuardのプライベートサービスを使用する場合、DNSリクエストのパスは以下の通りです:
パスに基づいて、最速の応答方案を分析することができます。
ローカルキャッシュヒット
最も速い応答はローカルキャッシュヒットです。ローカルキャッシュはメモリレベルであるため、速度が非常に速く、数マイクロ秒しかかかりません。
これはDNS応答のTTL(time to live)値によって制御され、通常は数分から数時間で、クエリ結果がその期間有効であることを示し、再クエリの必要がありません。
最小TTL値は「コントロールパネル -> 設定 -> DNS設定 -> DNSキャッシュ設定 -> 最小TTL値のオーバーライド」で設定できます。この値を大きくすることでキャッシュ時間を延長し、システムがより多くローカルキャッシュを使用するようになります。通常のTTL値は600秒です。
しかし、このサイトにはフィルタリング機能もあり、必要なサービスが広告ルールによって誤ってブロックされた場合、暗号化DNSを一時的に無効にしても、すぐにそのサービスにアクセスすることはできません。なぜなら、ローカルキャッシュの結果がフィルタリングルールによって変更されているからです。したがって、60秒に設定するのが比較的安全な値であり、誤ブロックによりユーザーが暗号化DNSを無効にした後、長時間待つ必要がないようにします。
AdGuard DNSサーバー
現在、このサイトは杭州にあるアリババクラウドサーバーを使用しており、東部地域のユーザーの低遅延ニーズを満たすことができます。ビジネスの成長に伴い、今後全国的にサーバーを追加する予定です。
サーバーキャッシュヒット
デフォルトでは、各ユーザーに4MBのDNSキャッシュが設定されています。経験上、これは一家族の使用に十分です。この設定を自由に変更するとユーザーサービスが強制的に中止される可能性があるため、このサイトではこの設定の変更エントリをブロックしています。
上流DNSサーバー
アリババクラウドサービスを使用しているため、上流DNSサービスとしてアリババクラウドのDNSサービスを選択しました。速度が非常に速く、通常は数ミリ秒以内に結果を返します。
ユーザーは上流DNSサーバーにリクエストする3つの方法があります:
- ロードバランシング: このサイトではデフォルトでロードバランシングを使用しており、最速のサーバーを自動的に選択して結果を返します。
- 並列リクエスト: このサイトでは現在、並列リクエストの使用を制限していません。
- 最速のIPアドレス: 現在意味のない設定であり、このサイトではこの設定の変更エントリをブロックしています。
「最速のIPアドレス」がなぜ意味がないのか説明します。最速のIPは、実際にサービスにアクセスするデバイス自体によって選択される必要があります。AdGuardサービスが杭州で動作し、ユーザーが北京にいる場合、AdGuardは杭州のIPアドレスが最速だと考えますが、実際にはユーザーが北京のサービスにアクセスする速度が最速です。杭州のIPアドレスを選択すると、逆に遅延が増加します。したがって、このサイトではこの設定の変更エントリをブロックしています。この設定はユーザーの家庭ネットワークでは有用かもしれませんが、公共サービスでは意味がありません。
ネットワーク体験に影響を与える要因は多くあります。例えば、サーバーの帯域幅、ネットワークの混雑、サーバーの負荷、ネットワークの品質など、最速のIPアドレスを選択しても最速の応答速度が保証されるわけではありません。遅延はその中の1つの要因であり、唯一の要因ではありません。ユーザーが誤った設定を行いサービス品質が低下するのを避けるために、このサイトではこの設定の変更エントリをブロックしています。
ルールフィルタリング
最も一般的なモードはブラックリストリストです。ユーザーはプリセットのブラックリストリストから選択できます。ブラックリストのヒットはハッシュアルゴリズムを使用しており、ルールの量に関係なく、ヒット時間はO(1)です。ユーザーはルールの量が多すぎてヒット時間が長くなることを心配する必要はありません。
しかし、ルールは計算後にメモリに保存され、各ユーザーのサービスのメモリ使用量は300MB以内に制限されています。これはほとんどのユーザーのニーズを満たすことができますが、ユーザーのルールの量が多すぎるとメモリ不足が発生し、サービスが繰り返し再起動され、サービス中断が発生する可能性があります。
現在、このサイトでは第三者ルールの使用をブロックしています。ユーザーが過度に大きなルールを導入するのを防ぐためです。将来的により良い制限手段があれば、第三者ルールの使用を再び開放します。
まとめ
より速いリクエスト応答を得るために、ユーザーは以下のことができます:
- 最小TTL値を適切に大きくし、ローカルキャッシュヒット率を高める。
- 適切なDNSキャッシュサイズを設定する(既定値が設定されています)。
- 最も近い都市を選択してサービスを作成する(企業の発展を待つ)。
- 海外への需要がない場合はロードバランシングを選択し、海外への需要がある場合は並列リクエストを選択する。
- 自分に適したブラックリストルールを使用し、過度に大きなルールを導入しない。