Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
nginx
GitHub Repository: nginx/nginx.org
Path: blob/main/xml/it/docs/hash.xml
1 views
1
<!--
2
Copyright (C) Igor Sysoev
3
Copyright (C) Nginx, Inc.
4
-->
5
6
<!DOCTYPE article SYSTEM "../../../dtd/article.dtd">
7
8
<article name="Messa a punto degli hash"
9
link="/it/docs/hash.html"
10
lang="it"
11
translator="Angelo Papadia"
12
rev="1">
13
14
<section>
15
16
<para>
17
Per processare rapidamente insiemi di dati, quali ad esempio
18
nomi di server, valori relativi alla direttiva
19
<link doc="http/ngx_http_map_module.xml" id="map"/>,
20
MIME type, stringhe di nomi di header di richiesta,
21
nginx usa tabelle di hash.
22
Durante l'avvio ed in seguito ad ogni rilettura della configurazione,
23
nginx seleziona la minore dimensione possibile delle tabelle
24
di hash, tale che la dimensione del bucket che memorizza le chiavi
25
con identico valore hash non superi il relativo parametro configurato
26
(hash bucket size).
27
La dimensione di una tabella e' espressa in bucket; tale dimensione
28
viene regolata continuamente, sinche' la dimensione non eccede il
29
valore configurato (hash max size).
30
Molti hash dispongono di specifiche direttive che consentono la modifica
31
di tali parametri; ad esempio, per l'hash dei nomi dei server esistono
32
<link doc="http/ngx_http_core_module.xml" id="server_names_hash_bucket_size"/>
33
e <link doc="http/ngx_http_core_module.xml" id="server_names_hash_max_size"/>.
34
</para>
35
36
<para>
37
Il parametro hash bucket size e' allineato ad una dimensione
38
multipla di quella di una linea di cache del processore utilizzato;
39
nei moderni processori cio' riduce il numero di accessi alla memoria
40
e quindi il tempo necessario a ricercare la chiave di un hash.
41
Se la dimensione del bucket hash e' pari a quella di una linea di
42
cache, allora il numero di accessi alla memoria durante la ricerca di
43
una chiave sara' nel peggiore dei casi pari a due &mdash;uno per l'indirizzo
44
del bucket, l'altro durante la ricerca della chiave nel bucket.
45
Per tale ragione, se nginx mostra un messaggio che suggerisce
46
l'incremento o della dimensione massima dell'hash oppure della
47
dimensione del bucket hash, e' preferibile intervenire anzitutto
48
sul primo dei due parametri e non modificare per quanto possibile
49
il secondo.
50
</para>
51
52
</section>
53
54
</article>
55
56