пятница, 4 июня 2010 г.

Sphinx query log parser – анализ query performance

Написал простой скриптик на awk для парсинга Sphinx query.log файла.


Парсинг всего файла:



CODE:




  1. awk '{ s += $6 } END { print "seconds: ", s, " average: ", s/NR, " queries: ", NR }' query.log







Парсинг за конкретный период, например за второе Июня:



CODE:




  1. awk '{ if($2=="Jun" && $3==2) {s += $6; r++} } END {print "total seconds: ", s, "average: ", s/r, " total queries: ", r}' query.log







В приведенных скриптах $N — это номер строки в лог файле.


NR — это общее количество записей в файле разделенных переводом строки.


Пример лог файла:


[Wed Jun  2 11:20:52.379 2010] 0.002 sec [ext2/0/rel 2024 (0,10)] [wordpress] spectrum

[Wed Jun  2 11:20:52.384 2010] 0.003 sec [ext2/0/rel 2 (0,1000) @post_type] [wordpress] spectrum

[Wed Jun  2 11:20:52.709 2010] 0.002 sec [ext2/0/rel 963 (0,10)] [wordpress] tin

[Wed Jun  2 11:20:52.713 2010] 0.002 sec [ext2/0/rel 2 (0,1000) @post_type] [wordpress] tin

[Wed Jun  2 11:20:52.997 2010] 0.003 sec [ext2/0/rel 1154 (0,10)] [wordpress] xi

[Wed Jun  2 11:20:53.004 2010] 0.004 sec [ext2/0/rel 2 (0,1000) @post_type] [wordpress] xi

[Wed Jun  2 11:20:53.029 2010] 0.003 sec [ext2/0/rel 1945 (0,10)] [wordpress] nasa

[Wed Jun  2 11:20:53.035 2010] 0.003 sec [ext2/0/rel 2 (0,1000) @post_type] [wordpress] nasa

[Wed Jun  2 11:21:09.359 2010] 0.005 sec [ext2/0/rel 22308 (0,10)] [wordpress] september


На выводе получится:


seconds:  566.738  average:  0.00948642  queries:  59742


Надеюсь это краткое описание языка awk поможет вам написать парсер для своих лог файлов.


Спасибо!




© Yaroslav Vorozhko for Просто про веб технологии, 2010. |
Permalink |
No comment |
Add to
del.icio.us


Post tags: awk, Performance, query log, Sphinx Search

Комментариев нет:

Отправить комментарий