caching - 任何缓存 DNS 服务器都可以异步刷新它们的缓存吗?

标签 caching dns low-latency dnsmasq

我们运行对延迟敏感的系统。我们发现了延迟的一个重要原因:一些进程正在阻止对远程名称服务器的 DNS 查找。为了缓解这种情况,我们安装了一个本地缓存 DNS 解析器,特别是 dnsmasq .

但是我们仍然偶尔会看到明显的暂停,其中对本地 DNS 缓存 ( dnsmasq ) 的查询可能需要很长时间。这些是由 TTL 到期引起的;在这些情况下 dnsmasq在响应本地进程之前查询其上游服务器。

我们也想消除这些停顿。我希望我们的本地 DNS 缓存始终立即响应,即使响应是陈旧的。缓存应异步查询其上游服务器。例如,如果缓存提供一个陈旧的响应,它可以异步刷新它。或者更复杂的策略是在 TTL 到期前不久异步刷新缓存。

但我找不到 dnsmasq 的任何此类设置,或者对于我看过的任何其他缓存 DNS 服务器。是否有任何 DNS 服务器设计为在此配置中运行?

最佳答案

Knot resolver带配置modules = { 'predict' } will start当 TTL 接近到期时,异步刷新被放入 answer 的记录。

请注意,版本 2.0.0 有一个错误,该错误使没有 DNSSEC 签名的记录无法刷新(将在下一个版本中修复)。

关于caching - 任何缓存 DNS 服务器都可以异步刷新它们的缓存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48787832/

相关文章:

caching - Couchbase 作为缓存和缓存失效

php - PHP 中处理并发的页面缓存?

PHP清除浏览器缓存以避免刷新后重新发送表单数据

c++ - 以编程方式将 LAN 计算机名称解析为完全限定名称?

c++ - 我应该将 "bind" "spinning"线程连接到某个核心吗?

nginx - Redis 低延迟,每秒 1k 请求

c# - 获取集合的缓存模式

c - c中的DNS客户端程序

ios - 以编程方式清除 iOS 上的 DNS 缓存

c++ - 为什么 Boost unordered_map 在第一次插入时花费太多时间?