labels_hash_bucket_size
Определяет размер бакетов хеш-таблицы для хранения глобальных меток в формате «ключ-значение» в NGINX.
Описание
Директива labels_hash_bucket_size настраивает размер бакета для хеш-таблицы, используемой для хранения глобальных меток в формате «ключ-значение», определённых в конфигурации NGINX. Эта директива критически важна для эффективного управления хранением этих меток, которые могут динамически использоваться при обработке запросов, логировании и в конфигурационных целях.
Директива принимает числовой аргумент, задающий размер бакета в байтах. Выбор размера бакета влияет на производительность и потребление памяти хеш-таблицы. Больший размер бакета может уменьшить число коллизий хэшей за счёт увеличения использования памяти, тогда как меньший размер может привести к большему количеству коллизий и, как следствие, ухудшению производительности. Важно подобрать размер бакета, соответствующий ожидаемому числу меток и их суммарным размерам, чтобы сбалансировать эффективность использования памяти и скорость доступа.
Как правило, размеры бакетов по умолчанию устанавливаются в 32, 64 или 128 байт в зависимости от размера строки кэша архитектуры. Рекомендуется корректировать этот параметр в соответствии с конкретными сценариями использования для оптимизации производительности, особенно в случаях, когда используется большое количество меток.
Пример конфига
http {
labels_hash_bucket_size 64;
label environment production;
label region us-west-1;
}Установка слишком малого размера бакета может привести к снижению производительности из-за увеличения числа коллизий хэшей.
Изменение этого значения требует перезапуска NGINX, чтобы новые настройки вступили в силу.