accept_mutex_delay

Директива 'accept_mutex_delay' управляет временем, в течение которого рабочий процесс будет ждать, пока accept mutex станет доступен, прежде чем принимать новые соединения. — NGINX Core

accept_mutex_delay
events
Синтаксисaccept_mutex_delay time;
По умолчаниюnone
Контекстevents
МодульNGINX Core
Аргументы1

Описание

Директива 'accept_mutex_delay' в NGINX задает задержку, применяемую, когда рабочий процесс пытается принять новое соединение, но не может сразу получить accept mutex. Этот mutex необходим для синхронизации доступа между несколькими рабочими процессами, чтобы не перегрузить сервер быстрыми запросами на соединение. Если рабочий процесс не может получить этот mutex, он приостановится на время, указанное в этой директиве, прежде чем вновь пытаться принимать соединения, что позволяет равномерно распределять нагрузку между рабочими и повышать эффективность. Параметр для 'accept_mutex_delay' задается в миллисекундах, что позволяет администраторам тонко настраивать задержку в зависимости от возможностей сервера и ожидаемой нагрузки. Например, установка 'accept_mutex_delay 500;' позволяет рабочему процессу ждать до полусекунды перед повторной попыткой. Эта настройка может существенно влиять на распределение соединений между несколькими рабочими процессами, особенно в условиях высокой конкурентности. Правильная настройка может максимизировать пропускную способность и снизить задержки, одновременно минимизируя конкуренцию за ресурсы. Важно отметить, что увеличение задержки может улучшить справедливость распределения при высокой нагрузке, позволяя другим рабочим процессам принимать соединения, но также может привести к меньшему числу принимаемых соединений при низкой нагрузке, поэтому значение следует устанавливать исходя из реальных моделей трафика.

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

events {
    accept_mutex on;
    accept_mutex_delay 300;
}

Чтобы директива вступила в силу, accept_mutex должен быть включен.

Установка очень высокого delay может привести к снижению уровня принятия соединений, особенно при низком трафике.

Не все операционные системы обрабатывают mutexes одинаково, что может повлиять на поведение этой директивы.