x-accel-redirect

Anton Maksimenkov engineer at hlebprom.ru
Fri Feb 24 05:39:23 MSK 2006


Hi, Anton.

>>> По уму, для mass-virtual hosting логи нужно открывать по необходимости
>>> и закрывать при неактивности.
DM>> Что не гарантирует спасения, ибо в часы пик вполне может быть нагрузка
DM>> на 70-80% виртуальных хостов. Для массхостинга с десятками тысяч хостов
DM>> скорее уж посылать все логи в один файл и после с ним что-то делать.
DM>> Что, правда, не помогает в случае error_log =(
> В nginx можно разбирать и error_log это не apache.
> А делать это можно, например так:
> nginx все логи пишет в файл.
> Висит отдельный процесс, который читает этот файл так же как это
> делает tail -f. Для каждого виртул хоста держит маленьки буфер.
> Например если буфер 1к и на сервере 10000 хостов то теоретический
> максимум потребляемой памяти - 10 Мб, реально будет меньше.

 Испытано на людях. Бредовая идея держать ЕЩЁ ОДИН процесс (tail)
посередине, через ядро будет прокачиваться В 2 РАЗА БОЛЬШЕ данных
:-))). Это раз. Второе - скорость этого дела будет (в т.ч. из-за см.
выше) сильно страдать, ибо tail как мне кажется не просто читает, она
ж строки выделяет, это плюсом лишняя нагрузка.
 Нужен максимум 1 процесс, хотя, судя по словам Игоря "писать надо в
файловую систему", даже он может быть уже лишним...

> Как только буфер заполнятся открывается файл для данного вирт. хоста и
> содержимое буфера пишется в файл.
> Через определенное время неактивности этот файл закрывается.
> И в итоге у нас будут постоянно открыты логи только активно посещаемых
> сайтов. Если буфер сделать больше, то открытых файлов будет меньше без
> частых операций открытия - закрытия.

 Если у него 10000 файлов и более, а хосты в случайном порядке, скажем
70%, регулярно посещаются ... Думается что либо оно будет их постоянно
одни закрывать другие открывать (если таймаут поменьше), либо откроет
все 7000 (если таймаут побольше), что даже более эффективно - лучше уж
держать 7000 дескрипторов и писать по мере поступления, чем
периодически ДОПОЛНИТЕЛЬНО открывать файлы. Ибо это как мне кажется
будет совершенно лишняя нагрузка на ОС - раз в секунду открывать +
закрывать 1-ы...10-ки файлов только лишь для этого логгера.

-- 
engineer






More information about the nginx-ru mailing list