ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: header вместо error_page



Здравствуйте, 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@xxxxxxxxx




 




Copyright © Lexa Software, 1996-2009.