マシンごとの分散 DNS キャッシュ - nscd/lwresd など

マシンごとの分散 DNS キャッシュ - nscd/lwresd など

序文:

当社の各地理的ネットワーク拠点にはキャッシュ リゾルバがあります。これらは回復力を高めるためにクラスター化されており、その局所性により、サーバーによって生成される内部リクエストの待ち時間が短縮されます。

これはうまく機能します。ただし、回線上で見られる大量のリクエストは、独自の DNS キャッシュを実行しないアプリケーションによって生成された同じレコードの検索です。

質問:

  1. ネットワークへの繰り返しのリクエストを減らすために、個々のサーバーで軽量のキャッシュ デーモンを実行することには大きな利点がありますか?

  2. 使用経験のある方はいますか?[u]nscdlwresdまたはdnscacheそのようなことをするには? 他に検討する価値のあるパッケージはありますか?

  3. 注意すべき注意事項はありますか? 明らかなことの他に、キャッシュとネガティブ キャッシュの古い結果があります。

答え1

私たちは数百台のマシンで nscd を使用していますが、私の経験では「問題なく動作」しています。これにより、DNS サーバーの負荷が大幅に軽減されました。

注意すべき唯一の点は、デフォルトではグループ/ユーザー/サービス検索とホスト検索がキャッシュされることです。これを無効にすることもできます (このケースでは、これらの検索もキャッシュする必要がありました)。

何年も前に nscd で問題があったことを覚えていますが、最近のバージョンでは大幅に改善されているようです。

答え2

私はいくつかの環境で nscd を使用しましたが、他の人が言うように、それはほぼ「問題なく動作する」のですが、各サイトのキャッシュ リゾルバが適切に動作している場合、ローカル キャッシュの利点はあまりないと言えます。レイテンシは低く、外部に余分なリクエストは送信されず、内部で余分なチャタリングが生成されるだけです。

私は、nscd が古いエントリを保持し、そのせいで「1 台のマシンが壊れる」という問題に何度か遭遇したことがあります。そのため、私の偏執的なアドバイスとしては、内部の DNS チャタリングがパフォーマンスに実際に影響を及ぼしていない場合は、ローカル キャッシュを気にしないことをお勧めします (パフォーマンスに影響がある場合は、nscd の存在を文書化して、時間的に重要な変更を行った場合にキャッシュをフラッシュすることを忘れないようにしてください)。

関連情報