Re[2]: header вместо error_page
Евгений Васильев
jeka at dvdrip.ru
Thu Dec 6 17:03:34 MSK 2007
Здравствуйте, Igor.
Вы писали 6 декабря 2007 г., 16:17:45:
IS> On Thu, Dec 06, 2007 at 03:27:00PM +0300, Евгений Васильев wrote:
>> >> Замечательно! вот бы еще сделать так, чтобы строки лога имели
>> >> фиксированную длину, для быстрого его чтения.
>> >> т.е уровнять параметры $user_agent $refferer $request
>> >> =)
>>
>> IS> Это очень просто. Для этого нужно, чтобы клиенты пользовались только одной
>> IS> версией браузера, делали бы одинаковый запрос, и делали бы его с одного
>> IS> и того же сайта.
>>
>> :)
>>
>> А всеже, неплохо было бы иметь переменные или просто параметр bin_log
>> Ну или какойнить патчик чтобы это делал, добивал строки пробелами или
>> нулями до указанной длины например.
>> цифры в байтах, строки пробелами добивать, размеры сократятся лога
>> значительно, и читать проще, не загружая весь лог.
IS> С чего это они сократяться, если все запросы, User-Agent'ы и Referer'ы
IS> будут добивать до одинаковой длины ? Какой, кстати - 1K, 2K, 16K?
Я образно, скажем чтобы считать траф мне нужно 3 параметра:
время, ip и $bytes_sent
В бинарном виде это 10 байт (если не ошибаюсь.) на 1 запись.
>> Мне вот сейчас нужено посчитать траффик с определенного хоста и
>> сгрупировать по ip. А если мой лог весит 200мб+
>> Как его читать то? А читать его надо каждые 5 мин.
>> А бинарный просто, сами же понимаете...
IS> И как это выглядит - не загружая весь лог ?
Проблема в скорости, одно дело распарсить весь лог, другое вытащить
нужные значения не загружая строки из файла.
Я жаже не представляю, сколько времени парсить лог таким способом
размером скажем в 2 гига.
>> Очень был бы рад, если в будующих версиях ченить подобное появится.
IS> Бинарные форматы - это зло, растираживанное Майкрософтом.
IS> Для обработки бинарного формата нужно писать специальную программу, заточенную
IS> под этот формат, тогда как для текстовых достаточно grep/awk/perl/etc.
Работаю с php, на нем как раз читать большие файлы быстро можно только
в таком виде как описал. А искать конец строки, разбивать строку по
параметрам это долго и накладно.
Куда проще перемещаться по длине строке и читать нужный параметр зная
где он и сколько их.
--
С уважением,
Евгений mailto:jeka at dvdrip.ru
More information about the nginx-ru
mailing list