Spec-Zone.ru › nginx

Настройка хешей

Для быстрого обработки статических наборов данных, таких как имена серверов, значения директивы map, типы MIME, имена строк заголовков запроса, nginx использует хеш-таблицы. Во время запуска и каждой переконфигурации nginx выбирает минимально возможные размеры хеш-таблиц таким образом, чтобы размер корзины, хранящей ключи с одинаковыми хеш-значениями, не превышал заданный параметр (размер корзины хеша). Размер таблицы выражается в корзинах. Настройка продолжается до тех пор, пока размер таблицы не превысит параметр максимального размера хеша. Большинство хешей имеют соответствующие директивы, которые позволяют изменить эти параметры, например, для хеша имён серверов это server_names_hash_max_size и server_names_hash_bucket_size.

Параметр размера корзины хеша выравнивается к размеру, кратному размеру строки кэша процессора. Это ускоряет поиск ключа в хеше на современных процессорах, уменьшая количество обращений к памяти. Если размер корзины хеша равен размеру строки кэша процессора, то количество обращений к памяти во время поиска ключа будет в худшем случае два — сначала для вычисления адреса корзины, а затем во время поиска ключа внутри корзины. Поэтому, если nginx выводит сообщение о необходимости увеличения либо максимального размера хеша, либо размера корзины хеша, то сначала следует увеличить первый параметр.

© 2002-2021 Igor Sysoev
© 2011-2024 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/hash.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API