Хтось знає, що таке теоретична межа розміру / etc / hosts в системі Linux, перш ніж ви зможете побачити погіршення продуктивності?
Крім того, чи може хтось вказати мені на якесь офіційне джерело, в якому зазначено, яка очікувана межа?
Хтось знає, що таке теоретична межа розміру / etc / hosts в системі Linux, перш ніж ви зможете побачити погіршення продуктивності?
Крім того, чи може хтось вказати мені на якесь офіційне джерело, в якому зазначено, яка очікувана межа?
Відповіді:
Використовуй джерело , Майк.
Роздільник використовує лінійний пошук по текстовому файлу для пошуку записів. Це база даних без індексів. Отже, за відсутності можливості керування додатковим кешуванням витрати на пошук будуть O (n). Що стосується того, коли це призведе до погіршення продуктивності, на це неможливо відповісти - це стає повільніше з кожним записом.
Якщо ви розмовляєте з програмістом бази даних або адміністратором, ви отримаєте різні цифри для точки, в якій пошук індексу (O (log2 (n)) дешевший, ніж повне сканування таблиці, але загалом відповідь буде в районі 20 до 100 записів.
Будь-яка система Linux, яка потребує вирішення багатьох імен (не лише імен хостів). Повинно працювати з nscd або подібним. Більшість таких кеш-файлів самі індексуватимуть дані, що зведе нанівець питання про продуктивність, однак ...
Він не дає можливості керувати складними / великими наборами даних - якщо у вас хост з більш ніж однією IP-адресою, пошук за допомогою файлу hosts завжди поверне перший запис.
Трохи історії Інтернету - до розгортання DNS у 1984 році файл хостів був єдиним, щоб вирішувати імена, а хостів у мережі не було багато - 325 в лютому 1983 (RFC 847) . Є копії HOSTS.TXT (хоча машинно не читаються) з 1982 року в архіві журналу інтернет-історії . Був навіть альтернативний HOSTS.TXT (Geoff Goodfellow's) .
Технічно немає верхньої межі. Однак кожен пошук DNS збирається потрапити в цей файл, тож навіщо залишати себе відкритим для цього?
Оскільки це варте, найбільший /etc/hosts
файл, який я розповсюдив у своїх середовищах, був 1200 рядків. І це добре працювало для програми, якою я керував. DNS не був варіантом у цьому конкретному середовищі.