Re: Зависимость значений директив *_timeout от значения timer_resolution
Валентин Бартенев
vbart на nginx.com
Вт Фев 12 14:41:42 UTC 2019
On Tuesday 12 February 2019 17:31:10 igor isaenko wrote:
> В документации написано, что эта директива указывает, сколько раз в секунду
> дергать gettimeofday, чтобы не дергать её на каждый запрос.
> Она появилась в версии 0.3.х.
> Мне кажется, это отличная директива, просто нужно указать, на что она
> влияет.
>
> Если её убрать из конфига и оставить дефолтное значение (100мс), придется
> явно указать, что нельзя ставить директивам *_timeout значения <= 100 мс.
> А если её убрать только из документации, всем станет интересно, что это :)
У неё нет дефолтного значения. По дефолту она выключена и лучше её оставить
в таком состоянии.
Смотрите: http://nginx.org/r/timer_resolution/ru
На современных системах (последние 10+ лет?) вызовы gettimeofday и так очень
дешевы. В свою очередь nginx их и так экономит, делает всего один вызов на
итерацию цикла.
Включение же timer_resolution в любое значение на Linux приводит к тому,
что раз в заданный интервал начинает прилетать сигнал. Регулярно прилетающий
сигнал может приводить к прерыванию выполняемых в этот момент системных вызовов.
А то в свою очередь будет только негативно сказываеться на производительности.
Кроме того это может приводить к разным спецэффектам в виде проявления очень
редких багов, потенциально возможных в этом месте.
--
Валентин Бартенев
Подробная информация о списке рассылки nginx-ru