[PATCH] Stop write log after have a problems for write(3).

Igor Sysoev is at rambler-co.ru
Sat Apr 18 14:56:38 MSD 2009


On Sat, Apr 18, 2009 at 02:47:53AM +0400, Anton Yuzhaninov wrote:

> 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% медленнее, 
> чем если отключить лог совсем.

Кстати, возможно имеет смысл пропускать не секунду, 10 секунд или минуту.

> Так что отключать лог совсем не нужно - достаточно не писать в него на 
> каждый запрос.
> 
> Если же ожидание одной операции записи занимает секунду, что с файловой 
> системой что то не так.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list