我们运行的是一个对延迟敏感的系统。我们发现一个导致延迟的重要原因:一些进程会向远程名称服务器进行阻塞DNS查找。为了缓解这个问题,我们安装了本地缓存DNS解析器,特别使用了dnsmasq。
但是我们仍然会偶尔看到显著的停顿,其中对本地DNS缓存(dnsmasq)的查询可能需要很长时间。这些停顿是由TTL过期引起的;在这些情况下,dnsmasq会在响应本地进程之前查询其上游服务器。
我们也想消除这些停顿。我希望我们的本地DNS缓存始终能够立即响应,即使响应是陈旧的。缓存应该异步查询其上游服务器。例如,如果缓存提供了陈旧的响应,它可以异步刷新此响应。或者更复杂的策略是在TTL到期前不久异步刷新缓存。
但我找不到任何这样的设置来配置dnsmasq或其他缓存DNS服务器。是否有设计成在这种配置下运行的DNS服务器?
但是我们仍然会偶尔看到显著的停顿,其中对本地DNS缓存(dnsmasq)的查询可能需要很长时间。这些停顿是由TTL过期引起的;在这些情况下,dnsmasq会在响应本地进程之前查询其上游服务器。
我们也想消除这些停顿。我希望我们的本地DNS缓存始终能够立即响应,即使响应是陈旧的。缓存应该异步查询其上游服务器。例如,如果缓存提供了陈旧的响应,它可以异步刷新此响应。或者更复杂的策略是在TTL到期前不久异步刷新缓存。
但我找不到任何这样的设置来配置dnsmasq或其他缓存DNS服务器。是否有设计成在这种配置下运行的DNS服务器?