nginx使用散列表来快速处理静态数据集,如服务器名称、 map 指令值、MIME类型、请求头名称。在开始和每次重新配置期间,nginx会选择哈希表的最小可能大小,这样存储具有相同哈希值的键的桶大小就不会超过配置的参数(哈希桶大小)。哈希表的大小用桶表示。表的大小会持续调整直到超过 hash max size 参数。大多数哈希表都有相应的指令来更改这些参数,例如,服务器名称哈希使用 server_names_hash_max_size 和 server_names_hash_bucket_size 指令。
哈希桶大小参数是处理器缓存行大小的倍数。这可以通过减少内存访问次数来加快哈希表中键的搜索速度。如果哈希桶大小等于一个处理器缓存行的大小,那么在最坏的情况下,搜索键的内存访问次数将是两次——第一次是计算桶地址,第二次是在桶内的搜索键的时候。因此,如果nginx发出消息需要增加哈希最大大小或哈希桶大小,那么首先应该增加第一个参数。
翻译:xiushao
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/60465.html