设置哈希
要快速处理静态数据集,例如服务器名称、map 指令的值, MIME 类型、请求标头字符串的名称、 nginx 使用哈希表。 在启动和每次重新配置期间,nginx 都会选择 哈希表的最小可能大小,以便存储桶大小 存储具有相同哈希值的 key 时,不会超过 配置的参数(哈希存储桶大小)。 表的大小以 bucket 表示。 调整将持续进行,直到表大小超过 hash max size 参数。 大多数哈希都有相应的指令,允许更改 例如,这些参数对于它们server_names_hash_max_size和server_names_hash_bucket_size的服务器名称哈希。
哈希存储桶大小参数与 处理器高速缓存行大小的倍数。这加快了速度 通过减少数字 的内存访问。 如果哈希存储桶大小等于一个处理器的高速缓存行大小 那么 key 搜索期间的内存访问次数将为 最坏情况下为 2 — 首先计算存储桶地址, 第二次是在存储桶内的键搜索期间。 因此,如果 nginx 发出请求增加的消息 Hash Max Size 或 Hash bucket size,然后是第一个参数 应首先增加。