Mercurial > hg > nginx-site
view xml/ru/docs/hash.xml @ 240:472e88bf177e
Slightly better wording for the "bind" parameter of the "listen" directive.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Tue, 13 Dec 2011 20:28:47 +0000 |
parents | 7db449e89e92 |
children | a1071d0d0979 |
line wrap: on
line source
<!DOCTYPE article SYSTEM "../../../dtd/article.dtd"> <article name="Настройка хэшей" link="/ru/docs/hash.html" lang="ru"> <section> <para> Для быстрой обработки статических наборов данных, таких как имена серверов, значения директивы map, mime-types, имена строк заголовков запроса, nginx использует хэш-таблицы. Во время старта и при каждой переконфигурации nginx подбирает минимально возможный размер хэш-таблиц с учётом того, чтобы размер корзины, куда попадают ключи с совпадающими хэш-значениями, не превышал заданного параметра (hash bucket size). Размер таблицы считается в корзинах. Подбор ведётся до тех пор, пока размер таблицы не превысит параметр hash max size. Для большинства хэшей есть директивы, которые позволяют менять эти параметры, например, для хэшей имён серверов директивы называются <link doc="http/ngx_http_core_module.xml" id="server_names_hash_max_size"/> и <link doc="http/ngx_http_core_module.xml" id="server_names_hash_bucket_size"/>. </para> <para> Параметр hash bucket size всегда выравнивается до размера, кратного размеру строки кэша процессора. Это позволяет ускорить поиск ключа в хэше на современных процессорах, уменьшив число обращений к памяти. Если hash bucket size равен размеру одной строки кэша процессора, то во время поиска ключа число обращений к памяти в худшем случае будет равно двум—первый раз для определения адреса корзины, а второй—при поиске ключа внутри корзины. Соответственно, если nginx выдал сообщение о необходимости увеличить hash max size или hash bucket size, то сначала нужно увеличивать первый параметр. </para> </section> </article>