¿Alguien sabe cuál es el límite de tamaño teórico de / etc / hosts en un sistema Linux antes de que pueda comenzar a ver una degradación en el rendimiento?
Además, ¿alguien puede señalarme alguna fuente oficial que indique cuál es el límite esperado?
Respuestas:
Usa la fuente , Mike.
El solucionador utiliza una búsqueda lineal a través del archivo de texto para localizar entradas. Es una base de datos sin índices. Entonces, en ausencia de capacidad de almacenamiento en caché adicional, el costo de las búsquedas será O (n). En cuanto a cuándo eso dará como resultado una degradación en el rendimiento, esa es una pregunta imposible de responder: se vuelve más lenta con cada registro.
Si habla con un programador o administrador de la base de datos, obtendrá diferentes cifras para el punto en el que una búsqueda de índice (O (log2 (n)) es más barata que un escaneo completo de la tabla, pero generalmente la respuesta estará en la región de 20 a 100 registros.
Cualquier sistema Linux que necesite resolver muchos nombres (no solo nombres de host). Debería estar ejecutando nscd o similar. Sin embargo, la mayoría de estos cachés indexarán datos, lo que anularía la pregunta de rendimiento ...
No proporciona medios para administrar conjuntos de datos complejos / grandes: si tiene un host con más de una dirección IP, las búsquedas a través del archivo de hosts siempre devolverán la primera entrada.
fuente
Un poco de historia de Internet: antes de que se implementara DNS en 1984, el archivo de hosts era el único para resolver nombres, y no había muchos hosts en la red: 325 en febrero de 1983 (RFC 847) . Hay copias de HOSTS.TXT (no legibles por máquina) de 1982 en el archivo de la lista de correo de Internet . Incluso hubo un HOSTS.TXT alternativo (Geoff Goodfellow's) .
fuente
Técnicamente, no hay límite superior. Sin embargo, cada búsqueda de DNS golpeará este archivo, entonces, ¿por qué dejarlo abierto a eso?
Por lo que vale, el
/etc/hosts
archivo más grande que he distribuido en mis entornos fue de 1.200 líneas. Y eso funcionó bien para la aplicación que estaba administrando. DNS no era una opción en ese entorno particular.fuente