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

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

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

使用来源 ,迈克。

parsing器使用文本文件中的线性search来查找条目。 这是一个没有索引的数据库。 所以,在没有额外的caching能力的情况下,查找的成本将是O(n)。 至于什么时候会导致性能下降,这是一个不可能回答的问题 – 每个logging都会变慢。

如果你和一个数据库程序员或者pipe理员交谈,你会得到不同的数据,在这个数据点上索引查找(O(log2(n))比全表扫描要便宜,但是一般情况下答案会在20到100条logging。

任何需要parsing大量名称(而不仅仅是主机名)的Linux系统。 应该运行nscd或类似的。 大多数这样的caching将索引数据本身,这将会使性能问题无效,但是…

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

有一点互联网的历史 – 在1984年部署​​DNS之前,主机文件是唯一解决名称的问题,而且在1983年2月(RFC 847)networking上没有太多的主机。 有从1982年在互联网历史maillist的档案 HOSTS.TXT(不机器可读,虽然)的副本。 甚至还有一个备用的HOSTS.TXT (Geoff Goodfellow's) 。

从技术上讲,没有上限。 但是,每个DNS查找都会打到这个文件,为什么要打开这个文件呢?

值得一提的是,我在我的环境中分发的最大的/etc/hosts文件是1,200行。 这对我pipe理的应用程序来说效果很好。 DNS在该特定环境中不是一个选项。