Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[3]: x-accel-redirect
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
|