[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