列出路由表需要很长时间才能完成

列出路由表需要很长时间才能完成

当我使用打印在计算机上定义的路线时route,大约需要 5 到 20 秒才能完成。为什么要花这么多时间?

启用VPN后:

$ time sudo route
Kernel IP routing table
(...)
real    0m21.423s
user    0m0.000s
sys 0m0.012s

不使用 VPN 时,这个过程大约需要 5 秒钟。计算机在这段时间内可以做很多事情。我重复测量了几次,每次都得到非常相似的结果。

我的机器是带有 3.0.0 内核的 Ubuntu,但据我所知,其他计算机上的路由工作方式相同。

答案1

典型的原因是路由尝试将表中的 IP 地址映射到其 DNS 名称中 - 并且由于 DNS 系统和网络的变化,这可能会非常慢。

您可以通过将-n参数传递给路由来验证这一点,要求它只显示数字而不进行任何名称解析。如果速度非常快,您就知道是反向 DNS 查找延迟了事情。

(在这种情况下,时间都花在等待外部系统通过网络响应上。本地 CPU 几乎处于空闲状态。)

相关内容