[PATCH] Stop write log after have a problems for write(3).
Anton Yuzhaninov
citrin at citrin.ru
Sat Apr 18 02:47:53 MSD 2009
Kirill A. Korinskiy wrote:
> At Fri, 17 Apr 2009 22:14:32 +0400,
> Igor Sysoev <is at rambler-co.ru> wrote:
>> Как долго длятся блокировки ?
>>
>
> Честно? Не замерял. Зависит это скорее от файловой системы. Но 5-10
> попыток записи на диск в случае отсутствия места хватит для потери
> воркера.
>
>> Выключение лога - это радикальное решение, нужно делать временный
>> отказ от логгирования по аналогии с access_log.
>>
>
> Если закончилось место (а мне интересен этот вариант) -- это
> радикальное решение позволит хоть как-то обслуживать клиентов.
>
Когда был сделан патч для access_log, по моим тестам nginx вполне мог проксировать около 1k
(точные цифры не сохранились) запросов в секунду, пытаясь при этом раз в секунду писать лог на
переполненный раздел.
Если ожидание ошибки на write() занимает, например 50 мс, то при попытке писать в access_log на
каждый запрос воркер может обслужить 20 запросов в секунду. Если пытаться писать раз в секунду,
то у него останется еще 950 мс для обслуживания запросов, т. е. он будет работать всего на 5%
медленнее, чем если отключить лог совсем.
Так что отключать лог совсем не нужно - достаточно не писать в него на каждый запрос.
Если же ожидание одной операции записи занимает секунду, что с файловой системой что то не так.
--
Anton Yuzhaninov
More information about the nginx-ru
mailing list