hashes 설정
nginx는 정적 데이터 세트(예: 서버 이름, map 명령 값, MIME 유형, 요청 헤더 문자열의 이름)를 빠르게 처리하기 위해 해시 테이블을 사용합니다.
nginx는 구성을 시작하고 다시 구성할 때마다 해시 테이블의 최소 사이즈를 선택하여 동일한 해시 값으로 키를 저장하는 버킷 용량이 구성된 매개변수(해시 버킷 용량)를 초과하지 않도록 합니다.
테이블 사이즈는 버킷으로 표시됩니다. 테이블 사이즈가 해시의 최대 용량 매개변수를 초과할 때까지 조정을 계속합니다. 대부분 해시는 이러한 매개변수의 변경을 허용하는 해당 명령이 있습니다.
예를 들어, 서버 이름 해시는 server_names_hash_max_size와 server_names_hash_bucket_size가 있습니다.
해시 버킷 크기 매개변수는 프로세서 캐시 라인 크기의 배수에 해당하는 용량에 맞게 조정됩니다. 그러면 액세스하는 메모리 수를 줄여서, 최신 프로세서의 해시에서 키 검색 속도를 높입니다. 해시 버킷 용량이 프로세서의 캐시 라인 용량과 동일할 경우, 최저 상태일 때 키 검색 시 액세스하는 메모리 수는 두 개가 됩니다.
즉, 버킷 주소를 계산하고 나서 버킷 내 키 검색을 계산합니다. 그러므로 nginx가 해시 최대 용량이나 해시 버킷 크기를 높이도록 요청하는 메시지를 보낼 경우, 먼저 첫 매개변수를 늘려야 합니다.