1. 程式人生 > >Nginx設定雜湊值

Nginx設定雜湊值

為了快速處理靜態資料集,例如伺服器名稱,對映指令的值,MIME型別,請求頭字串的名稱,nginx使用雜湊表。在啟動期間和每次重新配置時,nginx選擇最小可能大小的散列表,使得儲存具有相同雜湊值的金鑰的桶大小不超過配置的引數(雜湊桶大小)。表的大小以桶表示。繼續調整,直到表大小超過雜湊最大大小引數。大多數雜湊都有相應的指令允許更改這些引數,例如,對於伺服器名稱雜湊,它們是server_names_hash_max_size和server_names_hash_bucket_size。

雜湊桶大小引數與處理器的快取記憶體行大小的倍數對齊。這通過減少記憶體訪問的數量來加速現代處理器上的雜湊中的金鑰搜尋。如果雜湊桶大小等於一個處理器的快取記憶體行大小,那麼在最壞的情況下,金鑰搜尋期間的記憶體訪問次數將是兩次 - 首先計算儲存區地址,第二次是在儲存桶內的金鑰搜尋期間。因此,如果nginx發出請求增加雜湊最大大小或雜湊桶大小的訊息,則應首先增加第一個引數。