upstream_fair_shm_size
Задаёт размер общей памяти в модуле справедливого балансировщика нагрузки для отслеживания состояний серверов.
Описание
Директива upstream_fair_shm_size используется для настройки размера общей памяти, выделяемой для хранения информации о состоянии серверов при использовании справедливого балансировщика нагрузки в NGINX. Эта директива позволяет модулю справедливого балансировщика отслеживать активность серверов, такую как число запросов и сбои, что способствует более равномерному распределению трафика в пользу менее загруженных серверов. Сегмент общей памяти имеет ключевое значение для поддержания производительности и надёжности, особенно в условиях высокой параллельности или переменных нагрузок на серверы.
Параметр, указанный для upstream_fair_shm_size, определяет объём выделяемой памяти. Больший размер позволяет более подробно отслеживать состояния серверов, что может быть полезно для приложений с большим количеством бэкенд-серверов или при изменяющейся нагрузке. При задании этой директивы справедливый балансировщик инициализирует блок общей памяти на основе указанного размера, что позволяет выделить необходимые структуры для эффективного управления бэкенд-пирами. В зависимости от нагрузки и числа обрабатываемых запросов администраторам может потребоваться корректировать эту директиву для оптимизации производительности NGINX.
Директиву следует размещать в контексте http в конфигурационном файле NGINX; крайне важно, чтобы выделенный размер соответствовал потребностям приложений, работающих за прокси, чтобы избежать конкуренции за ресурсы общей памяти.
Пример конфига
http {
upstream my_backend {
fair;
server backend1.example.com;
server backend2.example.com;
}
upstream_fair_shm_size 10m;
}Установка слишком малого размера может привести к недостатку памяти для отслеживания статусов серверов, что приведёт к неэффективной работе балансировки нагрузки.
Убедитесь, что размер памяти соответствует общему объёму оперативной памяти сервера, чтобы избежать конкуренции за ресурсы.