Mercurial > hg > nginx-site
annotate xml/en/docs/hash.xml @ 2846:fdf1464e1977
Moved banner to the external file to make partial rollout possible.
An idea is to have several banners and show them with different probability
specified by split directive in the nginx.conf
author | Sergey Budnevitch <sb@waeme.net> |
---|---|
date | Tue, 10 May 2022 18:07:27 +0400 |
parents | ac131944d349 |
children |
rev | line source |
---|---|
580
be54c443235a
Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents:
300
diff
changeset
|
1 <!-- |
be54c443235a
Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents:
300
diff
changeset
|
2 Copyright (C) Igor Sysoev |
be54c443235a
Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents:
300
diff
changeset
|
3 Copyright (C) Nginx, Inc. |
be54c443235a
Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents:
300
diff
changeset
|
4 --> |
be54c443235a
Added copyright markers to documentation sources.
Ruslan Ermilov <ru@nginx.com>
parents:
300
diff
changeset
|
5 |
215
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
6 <!DOCTYPE article SYSTEM "../../../dtd/article.dtd"> |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
7 |
853
d1446e47d17d
Unified on the look of titles.
Ruslan Ermilov <ru@nginx.com>
parents:
625
diff
changeset
|
8 <article name="Setting up hashes" |
215
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
9 link="/en/docs/hash.html" |
589 | 10 lang="en" |
11 rev="1"> | |
215
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
12 |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
13 <section> |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
14 |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
15 <para> |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
16 To quickly process static sets of data such as server names, |
625
af3f38e349eb
Removed terminal whitespace and fixed apostrophes used.
Ruslan Ermilov <ru@nginx.com>
parents:
589
diff
changeset
|
17 <link doc="http/ngx_http_map_module.xml" id="map"/> directive’s values, |
300
a1071d0d0979
Slight markup and wording fixes.
Ruslan Ermilov <ru@nginx.com>
parents:
215
diff
changeset
|
18 MIME types, names of request header strings, |
215
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
19 nginx uses hash tables. |
300
a1071d0d0979
Slight markup and wording fixes.
Ruslan Ermilov <ru@nginx.com>
parents:
215
diff
changeset
|
20 During the start and each re-configuration nginx selects the |
a1071d0d0979
Slight markup and wording fixes.
Ruslan Ermilov <ru@nginx.com>
parents:
215
diff
changeset
|
21 minimum possible sizes of hash tables such that the bucket size |
215
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
22 that stores keys with identical hash values does not exceed the |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
23 configured parameter (hash bucket size). |
300
a1071d0d0979
Slight markup and wording fixes.
Ruslan Ermilov <ru@nginx.com>
parents:
215
diff
changeset
|
24 The size of a table is expressed in buckets. |
215
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
25 The adjustment is continued until the table size exceeds the |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
26 hash max size parameter. |
1144
ac131944d349
Changed infinitive to gerund after "allow".
Yaroslav Zhuravlev <yar@nginx.com>
parents:
853
diff
changeset
|
27 Most hashes have the corresponding directives that allow changing |
215
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
28 these parameters, for example, for the server names hash they are |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
29 <link doc="http/ngx_http_core_module.xml" id="server_names_hash_max_size"/> |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
30 and <link doc="http/ngx_http_core_module.xml" id="server_names_hash_bucket_size"/>. |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
31 </para> |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
32 |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
33 <para> |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
34 The hash bucket size parameter is aligned to the size that is a |
625
af3f38e349eb
Removed terminal whitespace and fixed apostrophes used.
Ruslan Ermilov <ru@nginx.com>
parents:
589
diff
changeset
|
35 multiple of the processor’s cache line size. This speeds up |
215
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
36 key search in a hash on modern processors by reducing the number |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
37 of memory accesses. |
625
af3f38e349eb
Removed terminal whitespace and fixed apostrophes used.
Ruslan Ermilov <ru@nginx.com>
parents:
589
diff
changeset
|
38 If hash bucket size is equal to one processor’s cache line size |
215
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
39 then the number of memory accesses during the key search will be |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
40 two in the worst case—first to compute the bucket address, |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
41 and second during the key search inside the bucket. |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
42 Therefore, if nginx emits the message requesting to increase |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
43 either hash max size or hash bucket size then the first parameter |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
44 should first be increased. |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
45 </para> |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
46 |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
47 </section> |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
48 |
abb48e50ff7f
Translated the "Setting Up Hashes" article into English.
Ruslan Ermilov <ru@nginx.com>
parents:
diff
changeset
|
49 </article> |