* [Comm] [JT] Форматирование логов: shell или perl
@ 2003-01-29 9:14 Flach
2003-01-29 9:29 ` Ilya Palagin
0 siblings, 1 reply; 7+ messages in thread
From: Flach @ 2003-01-29 9:14 UTC (permalink / raw)
To: community
Добрый день!
Вопрос не по системе, поэтому обозначил его как второстепенный.
Есть необходимость переформатировать и отсортировать содержимое логов трафика
пользователей. Для этих целей решил использовать grep, awk, sed и, конечно,
sort. Во время теста скрипта на живом логе (7 Мб) все прошло замечательно. Но
я не учел, что тот самый лог был один из первых, когда в системе было всего
12 пользователей. А их на самом деле гораздо больше. Сейчас суточные логи
представляют собой файлы размером до 100 Мб. Загрузка процессора на sort ,
если верить top, составляет 99,5. В результате, на больших логах имею массу
ошибок.
Кинулся тоже самле делать в perl, который по-идее для этого и предназначен,
но червь сомнения точит. А не повторится ли ситуация при обработке больших
логов?
Спасибо.
С уважением, Михаил
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] [JT] Форматирование логов: shell или perl
2003-01-29 9:14 [Comm] [JT] Форматирование логов: shell или perl Flach
@ 2003-01-29 9:29 ` Ilya Palagin
2003-01-29 11:49 ` [Comm] " Flach
0 siblings, 1 reply; 7+ messages in thread
From: Ilya Palagin @ 2003-01-29 9:29 UTC (permalink / raw)
To: community
Flach wrote:
> Добрый день!
> Вопрос не по системе, поэтому обозначил его как второстепенный.
> Есть необходимость переформатировать и отсортировать содержимое логов трафика
> пользователей. Для этих целей решил использовать grep, awk, sed и, конечно,
> sort. Во время теста скрипта на живом логе (7 Мб) все прошло замечательно. Но
> я не учел, что тот самый лог был один из первых, когда в системе было всего
> 12 пользователей. А их на самом деле гораздо больше. Сейчас суточные логи
> представляют собой файлы размером до 100 Мб. Загрузка процессора на sort ,
> если верить top, составляет 99,5. В результате, на больших логах имею массу
> ошибок.
> Кинулся тоже самле делать в perl, который по-идее для этого и предназначен,
> но червь сомнения точит. А не повторится ли ситуация при обработке больших
> логов?
Повторится, конечно. Лучше бросайте логи в mуsql базу (с помощью перла,
например) и генерируйте репорты средствами mysql (перл здесь понадобится
лишь для форматирования). Это быстро, надежно и практично, к тому же
можно будет накопить данные за годы!
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Comm] Re: [JT] Форматирование логов: shell или perl
2003-01-29 9:29 ` Ilya Palagin
@ 2003-01-29 11:49 ` Flach
2003-01-29 12:36 ` Denis S. Filimonov
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Flach @ 2003-01-29 11:49 UTC (permalink / raw)
To: community
> Повторится, конечно. Лучше бросайте логи в mуsql базу (с помощью перла,
> например) и генерируйте репорты средствами mysql (перл здесь понадобится
> лишь для форматирования). Это быстро, надежно и практично, к тому же
> можно будет накопить данные за годы!
Спасибо, Ilya.
Тут встает другой вопрос. Машинка на которой работают mysql и Apache не очень
мощная - PIII-800, 256Mb, HDD20Gb и все это на маме Gyga с чипсетом i815. Я
совсем недавно начал работать с MySQL и Perl и поэтому пока не очень
ориентируюсь в их потребностях. Но есть какое-то сомнение, что эта машинка
сможет быстро шевелиться проглатывая ежедневно по 50 Мегов информации. Кроме
того, для того чтобы лог кинуть в базу в любом случае его надо как-то
отформатировать и тогда мы возвращаемся к первому вопросу.
С уважением, Михаил
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] Re: [JT] Форматирование логов: shell или perl
2003-01-29 11:49 ` [Comm] " Flach
@ 2003-01-29 12:36 ` Denis S. Filimonov
2003-01-29 12:54 ` Sergey Degtyaryov
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Denis S. Filimonov @ 2003-01-29 12:36 UTC (permalink / raw)
To: community
29 Январь 2003 17:49, Flach написал:
> > Повторится, конечно. Лучше бросайте логи в mуsql базу (с помощью
> > перла, например) и генерируйте репорты средствами mysql (перл здесь
> > понадобится лишь для форматирования). Это быстро, надежно и
> > практично, к тому же можно будет накопить данные за годы!
>
> Спасибо, Ilya.
> Тут встает другой вопрос. Машинка на которой работают mysql и Apache
> не очень мощная - PIII-800, 256Mb, HDD20Gb и все это на маме Gyga с
> чипсетом i815. Я совсем недавно начал работать с MySQL и Perl и
> поэтому пока не очень ориентируюсь в их потребностях. Но есть
> какое-то сомнение, что эта машинка сможет быстро шевелиться
> проглатывая ежедневно по 50 Мегов информации. Кроме того, для того
> чтобы лог кинуть в базу в любом случае его надо как-то
> отформатировать и тогда мы возвращаемся к первому вопросу.
>
разница есть - насколько я понял, sort'ом вы перетряхиваете логи при
каждом запросе, т.е. одна и та же работа делается многократно, а mysql
это нужно будет только однажды - при добавлении, потом будут
использоваться индексы (если они, конечно, правильно созданы).
Что касается того потянет тачан или нет, все зависит от того как
нагружать будете :) но в целом MySQL имеет весьма скромные потребности.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] Re: [JT] Форматирование логов: shell или perl
2003-01-29 11:49 ` [Comm] " Flach
2003-01-29 12:36 ` Denis S. Filimonov
@ 2003-01-29 12:54 ` Sergey Degtyaryov
2003-01-29 13:17 ` Dmitry Lebkov
2003-01-29 13:33 ` Ilya Palagin
3 siblings, 0 replies; 7+ messages in thread
From: Sergey Degtyaryov @ 2003-01-29 12:54 UTC (permalink / raw)
To: community
Flach wrote:
>>Повторится, конечно. Лучше бросайте логи в mуsql базу (с помощью перла,
>>например) и генерируйте репорты средствами mysql (перл здесь понадобится
>>лишь для форматирования). Это быстро, надежно и практично, к тому же
>>можно будет накопить данные за годы!
>
>
> Спасибо, Ilya.
> Тут встает другой вопрос. Машинка на которой работают mysql и Apache не очень
> мощная - PIII-800, 256Mb, HDD20Gb и все это на маме Gyga с чипсетом i815. Я
> совсем недавно начал работать с MySQL и Perl и поэтому пока не очень
> ориентируюсь в их потребностях. Но есть какое-то сомнение, что эта машинка
> сможет быстро шевелиться проглатывая ежедневно по 50 Мегов информации. Кроме
> того, для того чтобы лог кинуть в базу в любом случае его надо как-то
> отформатировать и тогда мы возвращаемся к первому вопросу.
А какого рода ошибки?
Я сейчас специально погонял свою считалку.
Это cgi-ха, на perl.
У меня маленькие логи, но я специально раздул их:
[maga@spb maga]$ du access.log
45M access.log
Итак, считалка говорит:
Lines in access.log: 363375 lines
Time to analize: 78.221583 sec
Lines per sec: 4645 ln/sec
И ТТХ машинки:
iP166@262 Mhz, 64 RAM
[maga@spb maga]$ sudo hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads: 64 MB in 4.20 seconds = 15.24 MB/sec
Отработала нормально, и текст и картинка, загрузка была около
90%. В скрипте есть проверки по времени, по типу запроса и
сортировки.
--
Сергей Дегтярев
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] Re: [JT] Форматирование логов: shell или perl
2003-01-29 11:49 ` [Comm] " Flach
2003-01-29 12:36 ` Denis S. Filimonov
2003-01-29 12:54 ` Sergey Degtyaryov
@ 2003-01-29 13:17 ` Dmitry Lebkov
2003-01-29 13:33 ` Ilya Palagin
3 siblings, 0 replies; 7+ messages in thread
From: Dmitry Lebkov @ 2003-01-29 13:17 UTC (permalink / raw)
To: community
On Wed, 29 Jan 2003 14:49:30 +0300
Flach <flach@mcnet.ru> wrote:
>
> > Повторится, конечно. Лучше бросайте логи в mуsql базу (с помощью
> > перла, например) и генерируйте репорты средствами mysql (перл здесь
> > понадобится лишь для форматирования). Это быстро, надежно и
> > практично, к тому же можно будет накопить данные за годы!
>
> Спасибо, Ilya.
> Тут встает другой вопрос. Машинка на которой работают mysql и Apache
> не очень мощная - PIII-800, 256Mb, HDD20Gb и все это на маме Gyga с
> чипсетом i815. Я совсем недавно начал работать с MySQL и Perl и
> поэтому пока не очень ориентируюсь в их потребностях. Но есть какое-то
Такой машинки за глаза хватит ... :)
> сомнение, что эта машинка сможет быстро шевелиться проглатывая
> ежедневно по 50 Мегов информации. Кроме того, для того чтобы лог
> кинуть в базу в любом случае его надо как-то отформатировать и тогда
> мы возвращаемся к первому вопросу.
Зачем ворочать весь лог за день, если его можно лить построчно, с
интерфвалом в 5 минут, например?
--
WBR, Dmitry Lebkov
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Comm] Re: [JT] Форматирование логов: shell или perl
2003-01-29 11:49 ` [Comm] " Flach
` (2 preceding siblings ...)
2003-01-29 13:17 ` Dmitry Lebkov
@ 2003-01-29 13:33 ` Ilya Palagin
3 siblings, 0 replies; 7+ messages in thread
From: Ilya Palagin @ 2003-01-29 13:33 UTC (permalink / raw)
To: community
Flach wrote:
>>Повторится, конечно. Лучше бросайте логи в mуsql базу (с помощью перла,
>>например) и генерируйте репорты средствами mysql (перл здесь понадобится
>>лишь для форматирования). Это быстро, надежно и практично, к тому же
>>можно будет накопить данные за годы!
>
>
> Спасибо, Ilya.
> Тут встает другой вопрос. Машинка на которой работают mysql и Apache не очень
> мощная - PIII-800, 256Mb, HDD20Gb и все это на маме Gyga с чипсетом i815. Я
Для данной задачи это СЛИШКОМ мощная машина.
> совсем недавно начал работать с MySQL и Perl и поэтому пока не очень
> ориентируюсь в их потребностях. Но есть какое-то сомнение, что эта машинка
> сможет быстро шевелиться проглатывая ежедневно по 50 Мегов информации. Кроме
Вряд ли вы заметите нагрузку.
> того, для того чтобы лог кинуть в базу в любом случае его надо как-то
> отформатировать и тогда мы возвращаемся к первому вопросу.
Тормоза у вас возникают из-за того, что используемые утилиты работают с
текстовыми файлами построчно. mysql делает сортировку и запросы гораздо
более эффективными способами (если, конечно, вы установите индексы на
столбцы, по которым будете делать сортировку), т.е. загрузка и время
выполнения будут несравнимо меньшими.
Посмотрите, насколько проще стала задача:
1.Ввод данных в mysql базу с помощью perl скрипта (который будет
содержать лишь 2 основных команды - regex для разбиения строки на
элементы записи и sql команду INSERT)
2. Вывод данных с помощью perl скрипта (который будет содержать лишь 2
основных команды - sql команду SELECT и print)
И всё.
Об удобстве хранения информации в этом случае я уже говорил.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2003-01-29 13:33 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-29 9:14 [Comm] [JT] Форматирование логов: shell или perl Flach
2003-01-29 9:29 ` Ilya Palagin
2003-01-29 11:49 ` [Comm] " Flach
2003-01-29 12:36 ` Denis S. Filimonov
2003-01-29 12:54 ` Sergey Degtyaryov
2003-01-29 13:17 ` Dmitry Lebkov
2003-01-29 13:33 ` Ilya Palagin
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git