labels_hash_max_size
Директива `labels_hash_max_size` задаёт максимальный размер хеш-таблицы, используемой для хранения глобальных пар «ключ-значение» меток в NGINX.
Описание
Директива labels_hash_max_size является частью ngx_http_label_module и позволяет задавать глобальные метки в формате «ключ-значение», доступные по всей конфигурации NGINX. Эта директива указывает верхний предел числа записей, которые могут быть размещены в хеш-таблице, хранящей эти метки. Значение этой директивы должно быть положительным целым числом, определяющим вместимость таблицы. Правильно подобранный размер хеш-таблицы может улучшить производительность в случаях, когда используется значительное количество меток, поскольку это уменьшает вероятность коллизий и, следовательно, ускоряет операции поиска меток.
При настройке этой директивы важно учитывать ожидаемое количество меток в вашей среде. Если заданный максимальный размер слишком мал, это может привести к снижению производительности или непредвиденному поведению, так как дополнительные метки могут не храниться корректно. Увеличивая размер, также важно убедиться, что ресурсы памяти сервера способны вместить большую хеш-таблицу. Эффективное использование хеш-таблицы путём выбора подходящего размера в зависимости от сценария применения может заметно повлиять на скорость доступа к меткам при обработке запросов. Значения по умолчанию часто подходят для простых случаев, но оптимизация может улучшить производительность приложения в более сложных сценариях.
Пример конфига
http {
labels_hash_max_size 1024;
label environment production;
label region us-east-1;
# more configurations...
}Если размер хеш-таблицы установлен слишком малым, метки могут не сохраняться должным образом, что приведет к отсутствию значений в приложении.
Будьте осторожны с последствиями для памяти при установке слишком большого значения, так как это может привести к исчерпанию ресурсов.
Увеличение размера повышает потребление памяти; настраивайте его рассудительно, исходя из ожидаемого числа меток.