パフォーマンスの低下が見られるようになる前に、Linuxシステムでの/ etc/hostsの理論的なサイズ制限を知っている人はいますか?
さらに、予想される制限が何であるかを示す公式の情報源に私を向けることができますか?
ソースを使用 、マイク。
リゾルバーは、テキストファイルの線形検索を使用して、エントリを見つけます。インデックスのないデータベースです。したがって、追加のキャッシュ機能がない場合、ルックアップのコストはO(n)になります。それがいつパフォーマンスの低下をもたらすかについては、それは答えることは不可能です-すべてのレコードで遅くなります。
データベースプログラマーや管理者と話すと、インデックスルックアップ(O(log2(n))がフルテーブルスキャンよりも安価であるという点で異なる数値が得られますが、一般的には20程度の答えになります。 100レコードまで。
多くの名前(ホスト名だけでなく)を解決する必要があるLinuxシステム。 nscdなどを実行している必要があります。そのようなキャッシュのほとんどは、パフォーマンスの問題を無効にするデータ自体にインデックスを付けますが...
複雑な/大きなデータセットを管理する手段はありません。複数のIPアドレスを持つホストがある場合、hostsファイルを介した検索では常に最初のエントリが返されます。
少しインターネットの歴史-DNSが1984年に導入される前は、hostsファイルは名前を解決するためだけでした、そしてネットワーク上に多くのホストがありませんでした-1983年2月に325 (RFC 847) 。 internet-history maillistのアーカイブ には、1982年のHOSTS.TXT(ただし、マシンで読み取り不可)のコピーがあります。代替のHOSTS.TXT ((Geoff Goodfellow's)) もありました。
技術的には、上限はありません。しかし、すべてのDNSルックアップがこのファイルにヒットするので、なぜそれを開いたままにするのですか?
価値があるのは、最大の/etc/hosts
私の環境で配布したファイルは1,200行でした。そして、それは私が管理していたアプリケーションにとってはうまくいきました。 DNSはその特定の環境ではオプションではありませんでした。