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. Donc, en l'absence d'une capacité supplémentaire de mise en cache, le coût des recherches sera de O(n). Quant à savoir quand cela entraînera une dégradation des performances, c'est une question à laquelle il est impossible de répondre - cela devient plus lent avec chaque enregistrement.
Si vous parlez à un programmeur ou à un administrateur de base de données, vous obtiendrez des chiffres différents quant au moment où une consultation d'index (O(log2(n)) est moins chère qu'un balayage complet de la table, mais la réponse sera généralement de l'ordre de 20 à 100 enregistrements.
Tout système linux ayant besoin de résoudre un grand nombre de noms (pas seulement des noms d'hôtes). Il devrait exécuter nscd ou un programme similaire. La plupart de ces caches indexeront eux-mêmes les données, ce qui annulera la question des performances, cependant...
Il ne fournit aucun moyen de gérer des ensembles de données complexes/grands - si vous avez un hôte avec plus d'une adresse IP, les recherches via le fichier hosts retourneront toujours la première entrée.
8 votes
Cela me fait penser que vous faites quelque chose de fou ou que vous êtes loin des meilleures pratiques. Quels sont les détails ?
3 votes
Il semble bien que le déploiement d'un résolveur DNS léger soit une meilleure solution dans ce cas.
1 votes
J'ai un client qui en fait la demande. J'espérais trouver une documentation qui me permettrait de lui montrer pourquoi cela pose des problèmes, au lieu de devoir l'essayer sur une machine de test et d'en faire la démonstration.
1 votes
Le fichier hosts est une relique de l'époque pré-DNS des années 1970 et du début des années 1980. Avoir des centaines d'entrées dans un fichier hosts était considéré comme une mauvaise idée. si loin en arrière . Si vous avez plus de 10 entrées dans le vôtre, vous êtes probablement sur la mauvaise voie.