The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

perf-tools - новый набор утилит для анализа производительности в Linux

19.03.2015 12:32

Брендан Грег (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) .. <(ms) : I/O |Distribution |
0 -> 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)


  1. Главная ссылка к новости (http://www.brendangregg.com/bl...)
  2. OpenNews: Из Oracle ушел последний из ключевых разработчиков DTrace
  3. OpenNews: Инструментарий для наглядной оценки проблем с производительностью
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/41872-perf
Ключевые слова: perf, linux, treace
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Stax (ok), 15:44, 19/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Очень любопытная штука. Анализаторов производительности много не бывает.
    Стоило добавить в новость, что требуется ядро 3.2 или выше.
     
     
  • 2.14, Аноним (-), 20:56, 19/03/2015 [^] [^^] [^^^] [ответить]  
  • –9 +/
    > Стоило добавить в новость, что требуется ядро 3.2 или выше.

    Учитывая что скоро релизнется 4.0 - это уж прямо как-то неприлично даже упоминать становится. Некроманам - серебряных пуль, осиновых кольев и святой воды.

     
     
  • 3.17, angra (ok), 00:15, 20/03/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Админам локалхоста сообщаю, RHEL 6 закончит первую фазу production только во втором квартале 2016 года.
     
     
  • 4.28, Аноним (-), 15:02, 21/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну вот у тебя есть коммерческий саппорт? Вот и тереби шапку. А иначе - ну ты понял :)
     
  • 3.19, _KUL (ok), 02:10, 20/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Расскажи это админам боевых серверов(где по возможности от ядра остаётся только мнимально-нужный функционал, который был уже в 2.6.29)
     
     
  • 4.29, Аноним (-), 15:03, 21/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > функционал, который был уже в 2.6.29)

    А дыры они как, сами патчат? Чойта за админы такие крЮтые? :)

     
  • 3.20, Наше имя Легион (?), 13:49, 20/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Глупцам - подзатыльник и спать!
     

  • 1.2, Аноним (-), 16:09, 19/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Есть что-то подобное для FreeBSD?
     
     
  • 2.4, Аноним (-), 16:47, 19/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Там собственно оригинальный DTrace есть - вещщЪ.
    Но этот парень большой молодец, с такими темпами скоро dtrace будет обойдён :)

    Правдо пока это в моём Дебиане появится ... :(
    А рас системкрап и там и там, то лучше брать у производителя и перейти на Centos7. Я уже попробовал на мелочи, не без гиммора - но жыть можно.

     
     
  • 3.6, Аноним (-), 17:04, 19/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    DTrace - это понятно, но это немного не то, что сделано в данном продукте. Хочется именно набор удобных утилит для более общей статистики для поиска отправных точек.
    DTrace - это когда уже знаешь, куда копать.
     
     
  • 4.10, Мяут (ok), 18:08, 19/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну собственно Брендан Грег автор зачечательной штуки под названием DTrace Toolkit: http://www.brendangregg.com/dtracetoolkit.html.
    Оно конечно для Solaris писалось, но там в основном используются пробы из провайдеров, поэтому наверное и в FreeBSD запустится.
     
     
  • 5.12, Аноним (-), 20:07, 19/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну собственно Брендан Грег автор зачечательной штуки под названием DTrace Toolkit: http://www.brendangregg.com/dtracetoolkit.html.
    > Оно конечно для Solaris писалось, но там в основном используются пробы из
    > провайдеров, поэтому наверное и в FreeBSD запустится.

    Нет, почти ничего из этого тулкита не работает

     
  • 3.13, Аноним (-), 20:55, 19/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Правдо пока это в моём Дебиане появится ... :(

    Хреновый из тебя дебианщик, если ты такую прожку не можешь сам собрать. При эстетстве можно установить checkinstall-ом. Ну блин, должна же быть минимальная культура самообслуживания?

    > А рас системкрап и там и там,

    Про крап будешь рассуждать когда научишься самообслуживанию, имхо, и не будешь пасовать перед сборкой хотя-бы мелочи типа сабжа. А до тех пор - извините, потребители кушают то что спущено сверху более развитыми существами. Судьба у них такая.

    > и перейти на Centos7.

    Это который никак не релизнется все? Редхаты очень специфичные дистры. И пакетный менеджер у них абсолютно гадский после дебиановского. И репы сильно урезанные относительно дебиана.

     
     
  • 4.23, Аноним (-), 18:37, 20/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Хреновый из тебя дебианщик, если ты такую прожку не можешь сам собрать.

    Иди в оППА пЫонер. Делать из демьяна слаку - это для нищебpoдов пЫонеров.
    Я собрать на своем компе могу что хочешь - но я это в DC Не тащу.

     
     
  • 5.30, Аноним (-), 15:04, 21/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Какой симпатичный батхертец НеПыОнЭра. Можно добавки? :)
     
  • 4.24, Аноним (-), 18:39, 20/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >> и перейти на Centos7.
    > Это который никак не релизнется все?

    КОНЧАЙ БУХАТЬ дятел :)))

    >Редхаты очень специфичные дистры. И пакетный менеджер у них абсолютно
    >гадский после дебиановского. И репы сильно урезанные относительно дебиана.

    Ну дык я и писал - "можно жыть" а не "жить - хорошо" ...
    Ну ты алкаш :)

     
     
  • 5.34, Аноним (-), 23:46, 21/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну ты алкаш :)

    Интеллектуальный пост. Каким макаром чадо бухого слесаря до опеннета доползло?

     
  • 2.16, Аноним (-), 20:58, 19/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Есть что-то подобное для FreeBSD?

    Реинстал на линух. Поверьте, на линухе инструментировано много чего и сильно лучше чем у других. И дальше отрыв будет только увеличиваться.

     
     
  • 3.21, Аноним (-), 14:43, 20/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Есть что-то подобное для FreeBSD?
    > Реинстал на линух. Поверьте, на линухе инструментировано много чего и сильно лучше
    > чем у других. И дальше отрыв будет только увеличиваться.

    Угу, особенно системы тухлых пакетов инструментированы. И тормо...iptables. И отсутствие zfs on root.
    Нет, спасибо.

     
     
  • 4.22, llolik (ok), 16:49, 20/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > системы тухлых пакетов инструментированы

    этим занимаются. Да и можно подумать в BSD сильно лучше.
    > И тормо...iptables

    man nftables
    > И отсутствие zfs on root

    зачем? без претензий, просто интересно.

     
     
  • 5.25, Аноним (-), 18:44, 20/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >> системы тухлых пакетов инструментированы
    > этим занимаются. Да и можно подумать в BSD сильно лучше.

    Таки да :) В 10-ке pkg - это пестня. И бинарные пакеты по заказу лапчатых, не иначе :) Меня и порты устраивали ...

    >> И тормо...iptables
    > man nftables

    Уже давно и тщательно.  И?!?!?

    >> И отсутствие zfs on root
    > зачем? без претензий, просто интересно.

    Тут я сам аффтара не понял. Она конечно если ты сторидж разворачиваешь на ХХХ тер, то не охота ещё и под ОЗЪ выделять что то с другой файлухой. А охота сделать root-pool и всех то дел. Но так - само по себе ?!?!? Чёто аффтар имл в виду не не разъяснил :)

     
     
  • 6.33, Аноним (-), 23:44, 21/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > по заказу лапчатых, не иначе :)

    Да, яхи и апачи такие лапчатые что до сих пор бзды не везде вынесли. Но новые хосты поднимают на обычной убунте. Потому что за...сь.

    > Уже давно и тщательно.  И?!?!?

    Теперь еще man ipset - обрати внимание на работу с большими списками и все такое :)

     
  • 5.26, Аноним (-), 19:30, 20/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> системы тухлых пакетов инструментированы
    > этим занимаются. Да и можно подумать в BSD сильно лучше.

    Да, сильно лучше. Порты и новый pkg. Но главное тут порты :)

    >> И тормо...iptables
    > man nftables

    Что-то не гуглится никаких бенчмарков и сранений. Да и отзывов по поводу прироста скорости не вижу особо.
    Кто-нибудь на реальной нагрузке тестировал, сравнивал?

    >> И отсутствие zfs on root
    > зачем? без претензий, просто интересно.

    snapshots, компрессия на лету (например очень удобно под логи gzip-8 поставить), отсутствие зоопарка с разными файловыми системами, гибкое управление подразделами (например, вдруг понадобилось для конкретной бд в mysql использовать другой recordsize - создал для нее подраздел и крути что хочешь)
    можно еще много дальше перечислять

     
     
  • 6.27, Аноним (-), 20:00, 20/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > snapshots, компрессия на лету (например очень удобно под логи gzip-8 поставить), отсутствие
    > зоопарка с разными файловыми системами, гибкое управление подразделами (например, вдруг
    > понадобилось для конкретной бд в mysql использовать другой recordsize - создал
    > для нее подраздел и крути что хочешь)
    > можно еще много дальше перечислять

    Правда больше общие достоинства ZFS описал, для zfs on root тут только отсутствие зоопарка :)

     
  • 6.32, Аноним (-), 15:14, 21/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да, сильно лучше. Порты и новый pkg.

    Новый pkg - некий концепт. С пустыми репами и отсутствием живых майнтайнеров у пакетов. Сделано ... лучше чем было. Но толку уже буй - те кто хотел рулить системами в таком виде давно ушли на более адекватно управляемые системы и теперь пакетируют там.

    > Но главное тут порты :)

    В продакшне - нафиг не упала такая самодеятельность. Тестировать конфигу которая есть только у тебя одного на всю планету - удовольствие ниже среднего.

    > Что-то не гуглится никаких бенчмарков и сранений.

    Иди, зарубись с тамошним ipset по скорости. Тогда поговорим.

    > Кто-нибудь на реальной нагрузке тестировал, сравнивал?

    Я и говорю - а давай утолкаем штук 500 айпишников в блоклист на основе ipset и попробуем сравнить с вашим фаером, да? :)

    > snapshots, компрессия на лету (например очень удобно под логи gzip-8 поставить),

    Внезапно, btrfs все это умеет :)

    > отсутствие зоопарка с разными файловыми системами,

    При том что уже есть минимум 2 подвида ZFS - "от оракла" и "комьюнити" и они разные?

    > понадобилось для конкретной бд в mysql использовать другой recordsize - создал
    > для нее подраздел и крути что хочешь)

    А CoW который мешает жить базе данных и сильно гадит фрагментацией - отключить на ZFS не выйдет хоть тресни. И будет база работать медленно и печально. И гадить фрагментацией. В btrfs Oracle догадывался что так работать не надо и поставил задачу архитекту. И тот сделал фичу - nodatacow называется. Пофайлово рулится. Приветы сановским маркетолухам :)

    > можно еще много дальше перечислять

    А все-равно btrfs zfs'а сделает :)

     
     
  • 7.35, Аноним (-), 14:41, 22/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> Что-то не гуглится никаких бенчмарков и сранений.
    > Иди, зарубись с тамошним ipset по скорости. Тогда поговорим.

    Сорри, не понимаю вашего слэнга

    >> Кто-нибудь на реальной нагрузке тестировал, сравнивал?
    > Я и говорю - а давай утолкаем штук 500 айпишников в блоклист
    > на основе ipset и попробуем сравнить с вашим фаером, да? :)

    500? Я думал о масштабе как минимум раз в 100 больше

    >> понадобилось для конкретной бд в mysql использовать другой recordsize - создал
    >> для нее подраздел и крути что хочешь)
    > А CoW который мешает жить базе данных и сильно гадит фрагментацией -
    > отключить на ZFS не выйдет хоть тресни. И будет база работать
    > медленно и печально. И гадить фрагментацией. В btrfs Oracle догадывался что
    > так работать не надо и поставил задачу архитекту. И тот сделал
    > фичу - nodatacow называется. Пофайлово рулится. Приветы сановским маркетолухам :)

    Согласен, в zfs еще проблема с mmap-базами у mongo. Это приятный плюс у btrfs, но...

    >> можно еще много дальше перечислять
    > А все-равно btrfs zfs'а сделает :)

    Как бы ни хотелось, но пока не вижу этого. Даже отбросив все horror stories о потере данных, веря в то, что сейчас все на много стабильнее, все равно не хватает очень важных фич: ssd кэша нет, компрессии lz4 нет, аналога raidz* (raid5/6) стабильного нет

     
  • 4.31, Аноним (-), 15:08, 21/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Угу, особенно системы тухлых пакетов инструментированы.

    Так в продакшне суперсвежак нужен далеко не всегда. А вот подтяжка некоей программы версии с 1.1 до 3.87 может все сломать. Потому что автор например формат или параметры в конфиге решил поменять. Оно такое надо? А так для камикадзей есть всякие арчегенты и прочие дебиан анстейблы, на этом минном поле на всех саперов мин хватит :P.

    > И тормо...iptables.

    Ага, покажи аналог ipset который как раз не тормо, в отличие от, на больших наборах правил :)

    > И отсутствие zfs on root.

    И хрен с ним. На самом деле, при должной прямизне рук - линь может загружаться с чего угодно. Но это ж бояздэшники, до них как до жирафа.

     

  • 1.3, Саша (??), 16:25, 19/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    а гуи нету?)
     
     
  • 2.5, Аноним (-), 16:48, 19/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > а гуи нету?)

    А надо? 8-о

     
     
  • 3.7, Аноним (-), 17:23, 19/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> а гуи нету?)
    > А надо? 8-о

    Гуёвщиков мы гоним гуями.

    Но по теме - если бы чел поинтересовался - а не был бы просто праздным треплом с Уютненького - нарисовать гуй в DTrace - как два пальчика обмочить в сортире. Берешь и пишешь. Вы ж типа программисты. Язык открыт - вперде!

     
  • 3.8, Аноним (-), 17:41, 19/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А как я на серваке запущу?))
     
     
  • 4.9, Капитан (??), 18:07, 19/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ssh туннель
     
  • 4.11, Аноним (-), 19:15, 19/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    вот так:
    # ./iosnoop
     
     
  • 5.18, Аноним (-), 01:29, 20/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    не лезь к пацану у его ssh дырявый вот и мучается))
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру