Брендан Грег (Brendan Gregg (http://en.wikipedia.org/wiki/Brendan_Gregg)), один из разработчиков DTrace, переключился на развитие средств анализа производительности в Linux и подготовлил (http://www.brendangregg.com/blog/2015-03-17/linux-performanc... новый набор утилит perf-tools (https://github.com/brendangregg/perf-tools), основанный на применении подсистем ядра Linux perf_events и ftrace. Утилиты отличаются минимальным числом зависимостей, простотой использования и дополнительными возможностями изучения параметров производительности и отзывчивости.
Например, утилита iosnoop позволяет проанализировать дисковый ввод/вывод с приведением дополнительной информации о возникающих задержках (latency):
<font color="#461b7e">
# ./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
</font>Утилиты funccount, funcslower, funcgraph и functrace позволяют изучить обращение к системным вызовам, соответствующим определённой маске:
<font color="#461b7e">
# ./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
</font>
Для построения гистограммы, отражающей параметры отзывчивости, может использоваться утилита iolatency.<font color="#461b7e">
# ./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 |# |
</font>
Утилиты execsnoop, killsnoop и opensnoop позволяют проанализировать детали обращения к вызовам exec(), kill() и open():<font color="#461b7e">
# ./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
</font>Утилита cachestat выдаёт статистику попаданий в файловый кэш:
<font color="#461b7e">
# ./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
</font>Утилита kprobe позволяет отследить аргументы обращения к системным вызовам:
<font color="#461b7e">
# ./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)
</font>
URL: http://www.brendangregg.com/blog/2015-03-17/linux-performanc...
Новость: http://www.opennet.me/opennews/art.shtml?num=41872
Очень любопытная штука. Анализаторов производительности много не бывает.
Стоило добавить в новость, что требуется ядро 3.2 или выше.
> Стоило добавить в новость, что требуется ядро 3.2 или выше.Учитывая что скоро релизнется 4.0 - это уж прямо как-то неприлично даже упоминать становится. Некроманам - серебряных пуль, осиновых кольев и святой воды.
Админам локалхоста сообщаю, RHEL 6 закончит первую фазу production только во втором квартале 2016 года.
Ну вот у тебя есть коммерческий саппорт? Вот и тереби шапку. А иначе - ну ты понял :)
Расскажи это админам боевых серверов(где по возможности от ядра остаётся только мнимально-нужный функционал, который был уже в 2.6.29)
> функционал, который был уже в 2.6.29)А дыры они как, сами патчат? Чойта за админы такие крЮтые? :)
Глупцам - подзатыльник и спать!
Есть что-то подобное для FreeBSD?
Там собственно оригинальный DTrace есть - вещщЪ.
Но этот парень большой молодец, с такими темпами скоро dtrace будет обойдён :)Правдо пока это в моём Дебиане появится ... :(
А рас системкрап и там и там, то лучше брать у производителя и перейти на Centos7. Я уже попробовал на мелочи, не без гиммора - но жыть можно.
DTrace - это понятно, но это немного не то, что сделано в данном продукте. Хочется именно набор удобных утилит для более общей статистики для поиска отправных точек.
DTrace - это когда уже знаешь, куда копать.
Ну собственно Брендан Грег автор зачечательной штуки под названием DTrace Toolkit: http://www.brendangregg.com/dtracetoolkit.html.
Оно конечно для Solaris писалось, но там в основном используются пробы из провайдеров, поэтому наверное и в FreeBSD запустится.
> Ну собственно Брендан Грег автор зачечательной штуки под названием DTrace Toolkit: http://www.brendangregg.com/dtracetoolkit.html.
> Оно конечно для Solaris писалось, но там в основном используются пробы из
> провайдеров, поэтому наверное и в FreeBSD запустится.Нет, почти ничего из этого тулкита не работает
> Правдо пока это в моём Дебиане появится ... :(Хреновый из тебя дебианщик, если ты такую прожку не можешь сам собрать. При эстетстве можно установить checkinstall-ом. Ну блин, должна же быть минимальная культура самообслуживания?
> А рас системкрап и там и там,
Про крап будешь рассуждать когда научишься самообслуживанию, имхо, и не будешь пасовать перед сборкой хотя-бы мелочи типа сабжа. А до тех пор - извините, потребители кушают то что спущено сверху более развитыми существами. Судьба у них такая.
> и перейти на Centos7.
Это который никак не релизнется все? Редхаты очень специфичные дистры. И пакетный менеджер у них абсолютно гадский после дебиановского. И репы сильно урезанные относительно дебиана.
>Хреновый из тебя дебианщик, если ты такую прожку не можешь сам собрать.Иди в оППА пЫонер. Делать из демьяна слаку - это для нищебpoдов пЫонеров.
Я собрать на своем компе могу что хочешь - но я это в DC Не тащу.
Какой симпатичный батхертец НеПыОнЭра. Можно добавки? :)
>> и перейти на Centos7.
> Это который никак не релизнется все?КОНЧАЙ БУХАТЬ дятел :)))
>Редхаты очень специфичные дистры. И пакетный менеджер у них абсолютно
>гадский после дебиановского. И репы сильно урезанные относительно дебиана.Ну дык я и писал - "можно жыть" а не "жить - хорошо" ...
Ну ты алкаш :)
> Ну ты алкаш :)Интеллектуальный пост. Каким макаром чадо бухого слесаря до опеннета доползло?
> Есть что-то подобное для FreeBSD?Реинстал на линух. Поверьте, на линухе инструментировано много чего и сильно лучше чем у других. И дальше отрыв будет только увеличиваться.
>> Есть что-то подобное для FreeBSD?
> Реинстал на линух. Поверьте, на линухе инструментировано много чего и сильно лучше
> чем у других. И дальше отрыв будет только увеличиваться.Угу, особенно системы тухлых пакетов инструментированы. И тормо...iptables. И отсутствие zfs on root.
Нет, спасибо.
> системы тухлых пакетов инструментированыэтим занимаются. Да и можно подумать в BSD сильно лучше.
> И тормо...iptablesman nftables
> И отсутствие zfs on rootзачем? без претензий, просто интересно.
>> системы тухлых пакетов инструментированы
> этим занимаются. Да и можно подумать в BSD сильно лучше.Таки да :) В 10-ке pkg - это пестня. И бинарные пакеты по заказу лапчатых, не иначе :) Меня и порты устраивали ...
>> И тормо...iptables
> man nftablesУже давно и тщательно. И?!?!?
>> И отсутствие zfs on root
> зачем? без претензий, просто интересно.Тут я сам аффтара не понял. Она конечно если ты сторидж разворачиваешь на ХХХ тер, то не охота ещё и под ОЗЪ выделять что то с другой файлухой. А охота сделать root-pool и всех то дел. Но так - само по себе ?!?!? Чёто аффтар имл в виду не не разъяснил :)
> по заказу лапчатых, не иначе :)Да, яхи и апачи такие лапчатые что до сих пор бзды не везде вынесли. Но новые хосты поднимают на обычной убунте. Потому что за...сь.
> Уже давно и тщательно. И?!?!?
Теперь еще man ipset - обрати внимание на работу с большими списками и все такое :)
>> системы тухлых пакетов инструментированы
> этим занимаются. Да и можно подумать в BSD сильно лучше.Да, сильно лучше. Порты и новый pkg. Но главное тут порты :)
>> И тормо...iptables
> man nftablesЧто-то не гуглится никаких бенчмарков и сранений. Да и отзывов по поводу прироста скорости не вижу особо.
Кто-нибудь на реальной нагрузке тестировал, сравнивал?>> И отсутствие zfs on root
> зачем? без претензий, просто интересно.snapshots, компрессия на лету (например очень удобно под логи gzip-8 поставить), отсутствие зоопарка с разными файловыми системами, гибкое управление подразделами (например, вдруг понадобилось для конкретной бд в mysql использовать другой recordsize - создал для нее подраздел и крути что хочешь)
можно еще много дальше перечислять
> snapshots, компрессия на лету (например очень удобно под логи gzip-8 поставить), отсутствие
> зоопарка с разными файловыми системами, гибкое управление подразделами (например, вдруг
> понадобилось для конкретной бд в mysql использовать другой recordsize - создал
> для нее подраздел и крути что хочешь)
> можно еще много дальше перечислятьПравда больше общие достоинства ZFS описал, для zfs on root тут только отсутствие зоопарка :)
> Да, сильно лучше. Порты и новый pkg.Новый pkg - некий концепт. С пустыми репами и отсутствием живых майнтайнеров у пакетов. Сделано ... лучше чем было. Но толку уже буй - те кто хотел рулить системами в таком виде давно ушли на более адекватно управляемые системы и теперь пакетируют там.
> Но главное тут порты :)
В продакшне - нафиг не упала такая самодеятельность. Тестировать конфигу которая есть только у тебя одного на всю планету - удовольствие ниже среднего.
> Что-то не гуглится никаких бенчмарков и сранений.
Иди, зарубись с тамошним ipset по скорости. Тогда поговорим.
> Кто-нибудь на реальной нагрузке тестировал, сравнивал?
Я и говорю - а давай утолкаем штук 500 айпишников в блоклист на основе ipset и попробуем сравнить с вашим фаером, да? :)
> snapshots, компрессия на лету (например очень удобно под логи gzip-8 поставить),
Внезапно, btrfs все это умеет :)
> отсутствие зоопарка с разными файловыми системами,
При том что уже есть минимум 2 подвида ZFS - "от оракла" и "комьюнити" и они разные?
> понадобилось для конкретной бд в mysql использовать другой recordsize - создал
> для нее подраздел и крути что хочешь)А CoW который мешает жить базе данных и сильно гадит фрагментацией - отключить на ZFS не выйдет хоть тресни. И будет база работать медленно и печально. И гадить фрагментацией. В btrfs Oracle догадывался что так работать не надо и поставил задачу архитекту. И тот сделал фичу - nodatacow называется. Пофайлово рулится. Приветы сановским маркетолухам :)
> можно еще много дальше перечислять
А все-равно btrfs zfs'а сделает :)
>> Что-то не гуглится никаких бенчмарков и сранений.
> Иди, зарубись с тамошним 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) стабильного нет
> Угу, особенно системы тухлых пакетов инструментированы.Так в продакшне суперсвежак нужен далеко не всегда. А вот подтяжка некоей программы версии с 1.1 до 3.87 может все сломать. Потому что автор например формат или параметры в конфиге решил поменять. Оно такое надо? А так для камикадзей есть всякие арчегенты и прочие дебиан анстейблы, на этом минном поле на всех саперов мин хватит :P.
> И тормо...iptables.
Ага, покажи аналог ipset который как раз не тормо, в отличие от, на больших наборах правил :)
> И отсутствие zfs on root.
И хрен с ним. На самом деле, при должной прямизне рук - линь может загружаться с чего угодно. Но это ж бояздэшники, до них как до жирафа.
а гуи нету?)
> а гуи нету?)А надо? 8-о
>> а гуи нету?)
> А надо? 8-оГуёвщиков мы гоним гуями.
Но по теме - если бы чел поинтересовался - а не был бы просто праздным треплом с Уютненького - нарисовать гуй в DTrace - как два пальчика обмочить в сортире. Берешь и пишешь. Вы ж типа программисты. Язык открыт - вперде!
А как я на серваке запущу?))
ssh туннель
вот так:
# ./iosnoop
не лезь к пацану у его ssh дырявый вот и мучается))