On Fri, 7 Jan 2005, Andrew Velikoredchanin wrote:
> Igor Sysoev пишет:
> > On Fri, 7 Jan 2005, Andrew Velikoredchanin wrote:
> >
> >>У меня запускается парочка apache серверов для разных частей одного
> >>сайта. Мне-бы нужно считать через awstat статистику по обеим этим апачам
> >>как одну и ту-же. Каким образом это можно сделать? Можно-ли двум апачам
> >>указать один файл лога?
> >
> > Можно. В Апаче не делается никакого блокирования при записи логов,
> > используется тот факт, что записи небольшого размера атомарны с точки
> > зрения ядра.
>
> Это теоритически или приходилось использовать на практике?
Апач это использует для кучи своих процессов. Там нет никаких локов.
nginx тоже исопльзует.
POSIX требует, чтобы запись была атомарна как минимум для 512 байт.
Этот минимум задётся PIPE_BUF. Для Линукса он равен 4096, для
Соляриса - 5120. В FreeBSD PIPE_BUF равен 512, но реально он равен
нескольким страницам:
http://freebsd.rambler.ru/bsdmail/freebsd-hackers_1999/msg01543.html
В виндах, кстати, логи приходится локировать - там нет O_APPEND на уровне
ядра.
Игорь Сысоев
http://sysoev.ru