labels_hash_bucket_size

Определяет размер бакетов хеш-таблицы для хранения глобальных меток в формате «ключ-значение» в NGINX.

Синтаксисlabels_hash_bucket_size number;
По умолчаниюnone
Контекстhttp
Аргументы1

Описание

Директива labels_hash_bucket_size настраивает размер бакета для хеш-таблицы, используемой для хранения глобальных меток в формате «ключ-значение», определённых в конфигурации NGINX. Эта директива критически важна для эффективного управления хранением этих меток, которые могут динамически использоваться при обработке запросов, логировании и в конфигурационных целях.

Директива принимает числовой аргумент, задающий размер бакета в байтах. Выбор размера бакета влияет на производительность и потребление памяти хеш-таблицы. Больший размер бакета может уменьшить число коллизий хэшей за счёт увеличения использования памяти, тогда как меньший размер может привести к большему количеству коллизий и, как следствие, ухудшению производительности. Важно подобрать размер бакета, соответствующий ожидаемому числу меток и их суммарным размерам, чтобы сбалансировать эффективность использования памяти и скорость доступа.

Как правило, размеры бакетов по умолчанию устанавливаются в 32, 64 или 128 байт в зависимости от размера строки кэша архитектуры. Рекомендуется корректировать этот параметр в соответствии с конкретными сценариями использования для оптимизации производительности, особенно в случаях, когда используется большое количество меток.

Пример конфига

http {
    labels_hash_bucket_size 64;
    label environment production;
    label region us-west-1;
}

Установка слишком малого размера бакета может привести к снижению производительности из-за увеличения числа коллизий хэшей.

Изменение этого значения требует перезапуска NGINX, чтобы новые настройки вступили в силу.

← Ко всем директивам