Quelqu'un sait-il quelle est la taille limite théorique de / etc / hosts sur un système Linux avant que vous ne constatiez une dégradation des performances?
De plus, quelqu'un peut-il me diriger vers une source officielle qui indique quelle est la limite attendue?
Réponses:
Utilisez la source , Mike.
Le résolveur utilise une recherche linéaire dans le fichier texte pour localiser les entrées. C'est une base de données sans index. Ainsi, en l'absence de capacité de mise en cache supplémentaire, le coût des recherches sera O (n). Quant à savoir quand cela entraînera une dégradation des performances, c'est une question impossible à répondre - cela devient plus lent à chaque enregistrement.
Si vous parlez à un programmeur ou à un administrateur de base de données, vous obtiendrez des chiffres différents pour le moment où une recherche d'index (O (log2 (n)) est moins chère qu'une analyse de table complète, mais généralement la réponse sera de l'ordre de 20 à 100 enregistrements.
Tout système Linux nécessitant de résoudre un grand nombre de noms (pas seulement les noms d'hôte). Doit exécuter nscd ou similaire. La plupart de ces caches indexeront les données elles-mêmes, ce qui annulerait la question des performances, cependant ...
Il ne fournit aucun moyen de gérer des ensembles de données complexes / volumineux - si vous avez un hôte avec plusieurs adresses IP, les recherches via le fichier hosts renverront toujours la première entrée.
la source
Un peu d'histoire sur Internet - avant le déploiement de DNS en 1984, le fichier hosts était le seul à résoudre les noms, et il n'y avait pas beaucoup d'hôtes sur le réseau - 325 en février 1983 (RFC 847) . Il y a des copies de HOSTS.TXT (non lisible par machine, cependant) de 1982 dans les archives du mailliste de l'histoire d'Internet . Il y avait même un HOSTS.TXT alternatif (Geoff Goodfellow's) .
la source
Techniquement, il n'y a pas de limite supérieure. Cependant, chaque recherche DNS va frapper ce fichier, alors pourquoi vous y laisser ouvert?
Pour ce que ça vaut, le plus gros
/etc/hosts
fichier que j'ai distribué dans mes environnements était de 1 200 lignes. Et cela a bien fonctionné pour l'application que je gérais. DNS n'était pas une option dans cet environnement particulier.la source