Perf-tools — новый набор утилит для анализа производительности в Linux
19 марта 2015 года
Брендан Грег ( Brendan Gregg), один из разработчиков DTrace, переключился на развитие средств анализа производительности в Linux и подготовлил новый набор утилит perf-tools, основанный на применении подсистем ядра Linux perf_events и ftrace. Утилиты отличаются минимальным числом зависимостей, простотой использования и дополнительными возможностями изучения параметров производительности и отзывчивости.
Например, утилита iosnoop позволяет проанализировать дисковый ввод/вывод с приведением дополнительной информации о возникающих задержках (latency):
# ./iosnoop Tracing block I/O... Ctrl-C to end. COMM PID TYPE DEV BLOCK BYTES LATms supervise 1809 W 202,1 17039968 4096 1.32 supervise 1809 W 202,1 17039976 4096 1.30 tar 14794 RM 202,1 8457608 4096 7.53 tar 14794 RM 202,1 8470336 4096 14.90 tar 14794 RM 202,1 8470368 4096 0.27 tar 14794 RM 202,1 8470784 4096 7.74 tar 14794 RM 202,1 8470360 4096 0.25 tar 14794 RM 202,1 8469968 4096 0.24 tar 14794 RM 202,1 8470240 4096 0.24
Утилиты funccount, funcslower, funcgraph и functrace позволяют изучить обращение к системным вызовам, соответствующим определённой маске:
# ./funccount 'ip*' Tracing "ip*"... Ctrl-C to end. FUNC COUNT ip_mc_sf_allow 70 ipv6_chk_mcast_addr 72 ip_finish_output 108 ip_local_out 108 ip_output 108 ip_queue_xmit 108 ipv4_mtu 216 ip_local_deliver 229 ip_local_deliver_finish 229 ip_rcv 229 ip_rcv_finish 229 ipv4_dst_check 513
Для построения гистограммы, отражающей параметры отзывчивости, может использоваться утилита iolatency.
# ./iolatency Tracing block I/O. Output every 1 seconds. Ctrl-C to end. =(ms) .. 1 : 4381 |######################################| 1 - 2 : 9 |# | 2 - 4 : 5 |# | 4 - 8 : 0 | | 8 - 16 : 1 |# |
Утилиты execsnoop, killsnoop и opensnoop позволяют проанализировать детали обращения к вызовам exec(), kill() и open():
# ./execsnoop Tracing exec()s. Ctrl-C to end. PID PPID ARGS 22898 22004 man ls 22905 22898 preconv -e UTF-8 22908 22898 pager -s 22907 22898 nroff -mandoc -rLL=164n -rLT=164n -Tutf8 22906 22898 tbl 22911 22910 locale charmap 22912 22907 groff -mtty-char -Tutf8 -mandoc -rLL=164n -rLT=164n 22913 22912 troff -mtty-char -mandoc -rLL=164n -rLT=164n -Tutf8 22914 22912 grotty
Утилита cachestat выдаёт статистику попаданий в файловый кэш:
# ./cachestat -t Counting cache functions... Output every 1 seconds. TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB 08:28:57 415 0 0 100.0% 1 191 08:28:58 411 0 0 100.0% 1 191 08:28:59 362 97 0 78.9% 0 8 08:29:00 411 0 0 100.0% 0 9
Утилита kprobe позволяет отследить аргументы обращения к системным вызовам:
# ./kprobe p:do_sys_open Tracing kprobe do_sys_open. Ctrl-C to end. kprobe-26042 [001] d... 6910441.001452: do_sys_open: (do_sys_open+0x0/0x220) kprobe-26042 [001] d... 6910441.001475: do_sys_open: (do_sys_open+0x0/0x220)
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.