Здравствуйте.
Пополнение в полку средств для анализа производительности в Linux. К широко известным vmstat, top, sar добавился инструмент collectl, который можно найти на SourceForge. Утилита collectl позиционируется как средство мониторинга различных подсистем: CPU, Disks, Memory, Network, TCP, Sockets, Files, NFS. Что понравилось: богатство возможностей и гибкость настройки. Вот два примера запуска в интерактивном режиме:
1. Информация о подсистемах CPU и Network
su94:/home/share # collectl -scn waiting for 1 second sample... #<----CPU[HYPER]-----><----------Network----------> #cpu sys inter ctxsw KBIn PktIn KBOut PktOut 1 1 386 1551 10 129 2 9 2 2 398 1519 10 122 3 10 2 1 404 1548 16 182 2 9 2 2 398 1453 11 133 2 6 2 2 443 1641 15 171 4 14 3 3 2506 5566 3145 2265 74 1086 5 5 3931 8207 5340 3735 116 1774
2. Информация о процессе smbd
su94:/home/share # collectl -i:5 -sZ --procfilt csmbd waiting for 5 second sample... # PROCESS SUMMARY (faults are /sec) # PID User PR PPID S VSZ RSS CP SysT UsrT Pct AccuTime MajF MinF Command 4731 root 18 1 S 11M 3M 0 0.00 0.00 0 0:00.08 0 0 /usr/sbin/smbd 4793 root 18 4731 S 11M 1M 1 0.00 0.00 0 0:00.00 0 0 /usr/sbin/smbd 8468 nobody 15 4731 S 12M 3M 1 0.23 0.02 4 0:04.04 0 0 /usr/sbin/smbd 9304 root 18 4731 S 11M 2M 1 0.00 0.00 0 0:00.00 0 0 /usr/sbin/smbd
Помимо интерактивного, возможны еще два режима работы:
- режим записи (информация записывается в gz-файлы в указанном каталоге). Возможен запуск collectl в качестве демона (service collectl start; показания счетчиков записываются в /var/log/collectl/)
- режим воспроизведения (отображение данных, ранее записанных в файлы)
Вот пример: запись и проигрывание информации о дисковой подсистеме:
su94:/tmp/collectldata # collectl -sD -c2 -f/tmp/collectldata/ su94:/tmp/collectldata # collectl -sD -p /tmp/collectldata/*.gz # DISK STATISTICS (/sec) # <---------reads---------><---------writes---------><--------averages--------> Pct #Name KBytes Merged IOs Size KBytes Merged IOs Size RWSize QLen Wait SvcTim Util sda 0 0 0 0 0 0 0 0 0 0 0 0 0 sdb 0 0 0 0 0 0 0 0 0 0 0 0 0 sda 0 0 0 0 26254 6477 84 312 312 19 231 7 64 sdb 0 0 0 0 0 0 0 0 0 0 0 0 0
Показатели счетчиков можно выводить в различных ракурсах: базовые сведения, подробная (verbose) информация по подсистеме в целом, а также детальная разбивка по отдельным компонентам. Вот пример: информация о процессорах (в целом и по каждому):
su94:/tmp/collectldata # collectl -scC waiting for 1 second sample... ### RECORD 1 >>> su94 <<< (1226011357.007) (Thu Nov 6 17:42:37 2008) ### # CPU[HYPER] SUMMARY (INTR, CTXSW & PROC /sec) # USER NICE SYS WAIT IRQ SOFT STEAL IDLE INTR CTXSW PROC RUNQ RUN AVG1 AVG5 AVG15 0 0 3 12 0 1 0 83 4073 8394 0 168 0 0.11 0.19 0.22 # SINGLE CPU[HYPER] STATISTICS # CPU USER NICE SYS WAIT IRQ SOFT STEAL IDLE 0 0 0 9 0 0 5 0 85 1 0 0 3 41 0 0 0 56 2 0 0 0 9 0 0 0 90 3 0 0 0 0 0 0 0 100
В каждом режиме доступно множество опций. Полезно ознакомиться с документацией к утилите, руководством и примерами. Формат вывода результатов описан здесь. Документацию можно найти и в каталоге установки (/opt/hp/collectl/). Как обычно, man collectl спасет мир, а collectl -x выдаст сводку по ключам запуска.
Вот матрица перекрытия инструментов. Старая гвардия борозды не испортит, но и новобранец collectl вполне сгодится.
Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.
Pingback : OpenQuality.ru | Страшный сон тестировщика, или не навреди | November 16, 2008
[…] ресурсы потребляют наши процессы? Не пожираем ли мы память хранением […]
Pingback : OpenQuality.ru | Тайны острова сокровищ, или Exploratory testing | May 2, 2009
[…] прозондировать поведение системы. Какие ресурсы потребляют наши процессы? Нужно выполнить один из обязательных […]