[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