当来自 haproxy 的查询时,systemd-resolved 缓存无效

当来自 haproxy 的查询时,systemd-resolved 缓存无效

我们在 Ubuntu 18.04 上运行 HAProxy 1.8,并且我们注意到启动时间很慢。我们之前将启动时间缓慢归咎于 DNS 查找,因为我们有很多后端需要 HAProxy 在启动时解析。

但是,由于服务器运行时systemd-resolved启用了缓存,因此这应该不是问题(大多数后端都使用同一主机)。我们已通过尝试一些命令并查看网络流量确认它systemd-resolved确实在运行并且缓存已启用。dig

但是当 HAProxy 启动时,我们会看到大量出站 DNS 查询流量,即使这些查询应该被缓存。systemd-resolved stats数千次缓存未命中也证实了这一点。

切换到dnsmasq而不是systemd-resolved会使系统按预期运行 - 前几个 DNS 查找不会被缓存,但之后的所有内容都会被缓存,并且 HAProxy 启动速度很快。

问题是:什么原因可能导致systemd-resolved不缓存 DNS 查询,以及为什么它只发生在 HAProxy 查询中,而不是在使用时dig

相关内容