Czy ktoś zdarza się wiedzieć, jaki jest teoretyczny limit rozmiaru / etc / hosts w systemie Linux, zanim zaczniesz zauważać spadek wydajności?
Ponadto, czy ktoś może skierować mnie w stronę oficjalnego źródła, które określa, jaki jest oczekiwany limit?
Odpowiedzi:
Skorzystaj ze źródła , Mike.
Program tłumaczący używa wyszukiwania liniowego w pliku tekstowym w celu zlokalizowania pozycji. To baza danych bez indeksów. Zatem przy braku dodatkowej funkcji buforowania koszt wyszukiwania będzie wynosił O (n). To, kiedy doprowadzi to do pogorszenia wydajności, na to pytanie nie można odpowiedzieć - staje się wolniejsze z każdą płytą.
Jeśli porozmawiasz z programistą lub administratorem bazy danych, otrzymasz różne liczby dla punktu, w którym wyszukiwanie indeksu (O (log2 (n)) jest tańsze niż skanowanie pełnej tabeli, ale ogólnie odpowiedź będzie w zakresie 20 do 100 rekordów.
Każdy system linuxowy, który musi rozwiązać wiele nazw (nie tylko nazwy hostów). Powinien być uruchomiony nscd lub podobny. Większość takich pamięci podręcznych samodzielnie indeksuje dane, co unieważnia pytanie dotyczące wydajności, jednak ...
Nie zapewnia możliwości zarządzania złożonymi / dużymi zestawami danych - jeśli masz hosta z więcej niż jednym adresem IP, wyszukiwania w pliku hosts zawsze zwracają pierwszy wpis.
źródło
Trochę historii Internetu - zanim DNS został wdrożony w 1984 r., Plik hosts był jedynym rozwiązaniem nazw, a w sieci nie było wielu hostów - 325 w lutym 1983 r. (RFC 847) . Istnieją kopie HOSTS.TXT (jednak nie do odczytu maszynowego) z 1982 r. W archiwum maillisty historii Internetu . Był nawet alternatywny HOSTS.TXT (Geoff Goodfellow's) .
źródło
Technicznie nie ma górnej granicy. Jednak każde wyszukiwanie DNS trafi do tego pliku, więc po co pozostawić się otwartym na to?
Największy
/etc/hosts
plik, jaki dystrybuowałem w moich środowiskach, miał wartość 1200 linii. I to działało dobrze w zarządzanej przeze mnie aplikacji. DNS nie był opcją w tym konkretnym środowisku.źródło