comparison xml/ru/docs/hash.xml @ 76:4a4caa566120

Russian documentation import. Changes in module.dtd: <example> now allowed to contain <value> and <emphasis> elements (we need this to show important parts in examples), less strict checking of <directive> syntax (we don't want to fully document some directives, notably deprecated ones). Known issues: 1. <syntax> elements are preserved as is, they will require manual conversion (likely to some not-yet-existed format a la DocBook cmdsynopsis, as currently used one seems to be incomplete); 2. <value> no longer corresponds to replaceable content, and it's use in examples isn't correct; 3. <link doc="document#fragment"> doesn't work with current xslt, either should be supported or changed to <link doc="document" id="fragment">. The following files are intentionally omitted: maillists.xml (support.xml should be used instead), experimental.xml (obsolete), faq.xml (conflicts with existing one, needs discussion). Not yet linked to site.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 11 Oct 2011 12:57:50 +0000
parents
children 0a45870d0160
comparison
equal deleted inserted replaced
75:2bf4cd2787c5 76:4a4caa566120
1 <!DOCTYPE article SYSTEM "../../../dtd/article.dtd">
2
3 <article title="Настройка хэшей"
4 link="/ru/docs/hash.html"
5 lang="ru">
6
7 <section>
8
9 <para>
10 Для быстрой обработки статических наборов данных, таких как имена серверов,
11 значения директивы map, mime-types, имена строк заголовков запроса,
12 nginx использует хэш-таблицы.
13 Во время старта и при каждой переконфигурации nginx подбирает минимально
14 возможный размер хэш-таблиц с учётом того, чтобы размер корзины,
15 куда попадают ключи с совпадающими хэш-значениями,
16 не превышал заданного параметра (hash bucket size).
17 Размер таблицы считается в корзинах.
18 Подбор ведётся до тех пор, пока размер таблицы не превысит параметр
19 hash max size.
20 Для большинства хэшей есть директивы, которые позволяют менять эти параметры,
21 например, для хэшей имён серверов директивы называются
22 <link doc="http/ngx_http_core_module.xml#server_names_hash_max_size">server_names_hash_max_size</link>
23 и <link doc="http/ngx_http_core_module.xml#server_names_hash_bucket_size">server_names_hash_bucket_size</link>.
24 </para>
25
26 <para>
27 Параметр hash bucket size всегда выравнивается до размера, кратного
28 размеру строки кэша процессора. Это позволяет ускорить поиск ключа
29 в хэше на современных процессорах, уменьшив число обращений к памяти.
30 Если hash bucket size равен размеру одной строки кэша процессора,
31 то во время поиска ключа число обращений к памяти в худшем случае
32 будет равно двум&mdash;первый раз для определения адреса корзины,
33 а второй&mdash;при поиске ключа внутри корзины.
34 Соответственно, если nginx выдал сообщение о необходимости увеличить
35 hash max size или hash bucket size, то сначала нужно увеличивать первый
36 параметр.
37 </para>
38
39 </section>
40
41 </article>