/etc/hosts 的大小限制 (Linux)

Mik*_*P90 11 linux hosts

在您开始看到性能下降之前,有没有人碰巧知道 Linux 系统上 /etc/hosts 的理论大小限制是多少?

此外,任何人都可以指出一些官方消息来源,说明预期限制是什么?

sym*_*ean 9

使用来源,迈克。

解析器在文本文件中使用线性搜索来定位条目。这是一个没有索引的数据库。因此,在没有附加缓存功能的情况下,查找的成本将为 O(n)。至于什么时候会导致性能下降,这是一个不可能回答的问题 - 每条记录都会变慢。

如果您与数据库程序员或管理员交谈,您将获得不同的数字,表明索引查找 (O(log2(n)) 比全表扫描更便宜,但通常答案将在 20 左右到 100 条记录。

任何需要解析大量名称(不仅仅是主机名)的 Linux 系统。应该运行 nscd 或类似的。大多数这样的缓存会自己索引数据,这将使性能问题无效,但是......

它不提供管理复杂/大型数据集的方法 - 如果您的主机具有多个 IP 地址,则通过主机文件查找将始终返回第一个条目。


sen*_*nfo 5

一点互联网历史——在 1984 年部署 DNS 之前,hosts 文件是唯一用于解析名称的文件,并且网络上没有很多主机——1983 年 2 月有 325 台(RFC 847)。在internet-history maillist存档中有1982 年的 HOSTS.TXT(虽然不是机器可读)的副本。甚至还有一个替代的 HOSTS.TXT (Geoff Goodfellow's)