Mam klienta, który tego żąda. Miałem nadzieję znaleźć dokumentację, w której mógłbym im pokazać, dlaczego spowoduje to problemy; zamiast próbować go na maszynie testowej i demonstrować.
Plik hosts jest reliktem czasów sprzed DNS z lat 70. i wczesnych 80. Posiadanie setek wpisów w pliku hosts zostało już dawno uznane za zły pomysł . Jeśli masz więcej niż 10 wpisów, prawdopodobnie jesteś na złym tropie.
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.
Aby zamknąć pętlę, dodaliśmy 1,7 miliona rekordów do pliku hosts i oszacowaliśmy, że dodało to 0,5 sekundy do każdego wyszukiwania. W tym środowisku 0,5 sekundy jest nieistotne. Myślę, że serwer DNS jest nadal lepszym rozwiązaniem, ale klient chce tego, czego chce.
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) .
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/hostsplik, 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.
Ujmijmy to inaczej. Jeśli w jądrze nie ma indeksowania, każde trafienie wykona liniowe wyszukiwanie, które będzie zależeć od wielkości pamięci podręcznej w miarę upływu czasu.
Korzystam z popularnego pliku hosts znalezionego w Internecie, jest tam 15.430 linii i nie zauważam prawdziwego pogorszenia wydajności surfowania po Internecie.
+1 do notatki Berta. Właśnie użyłem niestandardowego pliku zawierającego 22 000 wierszy i nie wpłynęło to na wydajność. Jest to przydatne do celów testowych!
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.