The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Релиз системы динамической отладки SystemTap 2.1"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от opennews (??) on 14-Фев-13, 17:19 
Представлен (https://lkml.org/lkml/2013/2/13/525) релиз системы динамической трассировки SystemTap 2.1 (http://sourceware.org/systemtap/), предоставляющий для платформы Linux средства похожие на технологию DTrace. SystemTap позволяет организовать доскональное наблюдение за работающей Linux системой, производить сбор статистики о работе приложений, профилирование и контроль системных вызовов. Управление производится через интерфейс командной строки и специальный Си-подобный язык сценариев (http://sourceware.org/systemtap/documentation.html). Система протестирована с ядрами Linux начиная с версии 2.6.9 и заканчивая 3.8-rc.

В развитии проекта участвуют такие компании как  Red Hat, IBM, Intel, Hitachi и Oracle. В каталоге примеров (http://sourceware.org/systemtap/examples/keyword-index.html) представлено более 100 скриптов на все случаи жизни, подходящие для слежения за распределением памяти, вводом/выводом, дисковыми операциями, сетевым трафиком (например, анализ работы NFS), работой планировщика задач, обработкой прерываний, использованием системных буферов, установкой блокировок, выполнением системных вызовов, обработкой сигналов и т.п.

Основные улучшения в версии 2.1:

-  Изменения во фронтэнде (утилите stap):


-  Реализованы режимы редактирования файлов сценариев systemtap, работающие в стиле EMACS и VIM;
-  Транслятор теперь исключает дубликаты tapset-файлов, встречающиеся при наличии в системе нескольких наборов правил, что позволяет избежать конфликта при использовании нескольких установленных вариантов systemtap (например, поставляемого с системой и собранного вручную);
-  В транслятор добавлена поддержка опции "--suppress-time-limits" (работает в режиме гуру "-g"), при которой перестают действовать заданные в правилах ограничения, привязанные ко времени, что позволяет протестировать работу обработчика в любой момент времени, не дожидаясь нужного периода;

-  При выводе ошибок теперь упоминается дополнительная информация о характере проблемы,  которую можно получить через man-руководства  error::X и  warning::X (например, man warning::432);

-  Улучшения в языке сценариев:

-  Данные о событиях, доступных через подсистему ядра Perf ("perf events") теперь можно читать по требованию. Проверки состояния счётчика могут быть определены в форме counter("NAME"), например "probe perf.type(0).config(0).counter("NAME")";

-  Проверки через подсистему Perf могут быть прикреплены к определённым процессам при помощи параметра process("NAME"), например
"probe perf.type(0).config(0).process("NAME") { }";

-  В циклах foreach теперь может выполняться сортировка агрегированных массивов с использованием произвольной агрегатной функции, например "foreach ([x,y] in array @sum +) { println(@sum(array[x,y])) }";

-  Начальная реализация поддержки регулярных выражений, что позволяет выполнять такие сопоставления, как "if ("aqqqqqb" =~ "q*b") { ... }" или  "if ("abc" !~ "q*b") { ... }". Реализация построена с использованием инструментария re2c (http://sourceforge.net/projects/re2c/) и близка по возможностям и синтаксису к POSIX Extended Regular Expressions, используемому в glibc. Пока не реализованы возможности выделения частей  строк и субвыражений, не поддерживаются именованные классы символов ([:alpha:], [:digit:], &c и т.п.);

-  Улучшена работа бэкенда dyninst, предоставляющего возможность анализа пользовательских процессов без необходимости загрузки специфичных модулей для ядра Linux и, соответственно, не требующего root-привилегий. Обеспечена поддержка параллельной обработки при проверке многопоточных программ. Обеспечено продолжение проверки после выполнения исследуемым процессом вызова fork. Добавлена поддержка новых типов проверок, таких как таймеры, возвращаемые функциями параметры, привязки к началу/концу выполнения процесса/нити. Добавлена поддержка трассировки уже запущенного процесса через указание  опции "-x PID";

-  Добавлен тапсет choose_defined.stpm с реализацией макроса @choose_defined(). Объявлены устаревшими тапсеты  signal.send.return и signal.handle.return;

-  Новые примеры использования SystemTap:


-  Примеры трассировки переведены на использование ppfunc() вместо probefunc();
-  perf.stp  - использование perf.counter для доступа к параметрам производительности;
-  regex.stp  - проверка имён открываемых файлов в соответствии с регулярным выражением;
-  threadstacks.stp   - переопределяет используемые по умолчанию значения размера стека new-pthread;
-  mutex_contention.stp - анализ конкуренции mutex-ов в pthread;
-  ltrace.stp      - демонстрация ltrace на базе uprobes;
-  pingpong.stp, block.stp, eater.stp, lifegame.stp - набор демонстрационных игр.

URL: https://lkml.org/lkml/2013/2/13/525
Новость: https://www.opennet.ru/opennews/art.shtml?num=36111

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Релиз системы динамической отладки SystemTap 2.1"  –5 +/
Сообщение от Аноним (??) on 14-Фев-13, 17:19 
Вот знаете, что прикольно? Как же сильно СПО болеет NIH.

Сейчас, поясню, Шигорин.

Изначально это был DTrace, написанный для динамических ядер Solaris - системы, произросшей от AT&T SysV.

Что крестьяне - то и обезьяне: сказано-сделано, надо воспроизвесть у себе. Берем BSD-like монолит и лепим туда горбатого.

Ну и что вышло, в финале каторжных интеллектуальных трудов?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Релиз системы динамической отладки SystemTap 2.1"  +3 +/
Сообщение от бедный буратино (ok) on 14-Фев-13, 17:32 
Как же сильно аноним болеет. Вкаждойбочкезатычизмом экспертного мнения.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Релиз системы динамической отладки SystemTap 2.1"  +2 +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 14-Фев-13, 17:55 
DTrace не СПО, балбес. И никак его нельзя засунуть в линуховое ядро. Ибо кроме лицензий на код есть ещё патенты на конкретную реализацию этой технологии.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

22. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от Xm8230 on 16-Фев-13, 10:43 
>DTrace не СПО

Вполне себе СПО, но опубликованно под CDDL. CDDL с вирусом GPL несовместимо, потому и родилась SystemTap под †православной† GPL.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

4. "Релиз системы динамической отладки SystemTap 2.1"  +5 +/
Сообщение от кевин on 14-Фев-13, 18:02 
так нагладно показывать собственную некомпетентость не умею даже я! 1:0 в твою пользу
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

6. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от qux (ok) on 14-Фев-13, 18:07 
> Изначально это был DTrace

Откуда инфа?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

13. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от umbr (ok) on 15-Фев-13, 02:11 
Лицензия у DTrace: CDDL and proprietary
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от qux (ok) on 14-Фев-13, 18:07 
Кто знает в чем проблема (почему одни адреса, без символов)?
При первом запуске: WARNING: missing unwind/symbol data for module 'kernel'
В /proc/kallsyms и /boot/System.map-* символы есть. Systemtap криво собран?

# stap --all-modules /usr/share/doc/systemtap-client-2.0/examples/memory/hw_watch_sym.stp vm_swappiness -c "echo 50 > /proc/sys/vm/swappiness"
vm_swappiness value is accessed
0xffffffff81068e6f
0xffffffff8106956a (inexact)
0xffffffff81069a18 (inexact)
0xffffffff81068e40 (inexact)
0xffffffff812032d3 (inexact)
0xffffffff81203308 (inexact)
0xffffffff81194a9c (inexact)
0xffffffff81194de2 (inexact)
0xffffffff8163515e (inexact)
0xffffffff81639799 (inexact)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от ананим on 14-Фев-13, 19:46 
Очевидно — нет символов.
http://sourceware.org/systemtap/SystemTap_Beginners_Guide/us...
Дебагинфо нужны.
Системмэп это не то.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от qux (ok) on 14-Фев-13, 21:14 
Но для трейса при панике есть же. Пусть бы генерило подобный.
С -devel/-debuginfo попробую.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

17. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от qux (ok) on 15-Фев-13, 14:39 
На kernel-debug с установленным devel то же самое. Тащить еще 300мб (пожатого) -debuginfo не впечатляет.
Странно это.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

18. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от Frank Ch. Eigler email on 15-Фев-13, 20:15 
Hi.  If the script is still not working for you, please send some information about your computer to systemtap@sourceware.org, we'll try to help.  On my Fedora17 machine, with systemtap 2.1, this works:

# stap --all-modules /usr/share/doc/systemtap-*/examples/memory/hw_watch_sym.stp vm_swappiness -c "echo 50 >/proc/sys/vm/swappiness"
vm_swappiness value is accessed
0xffffffff810673df : do_proc_dointvec_minmax_conv+0x2f/0x80 [kernel]
0xffffffff81067f9a : __do_proc_dointvec.isra.6+0x10a/0x360 [kernel]
0xffffffff81068448 : proc_dointvec_minmax+0x48/0x50 [kernel]
0xffffffff811fcbb3 : proc_sys_call_handler.isra.11+0xb3/0xd0 [kernel]
0xffffffff811fcbe8 : proc_sys_write+0x18/0x20 [kernel]
0xffffffff811900cc : vfs_write+0xac/0x180 [kernel]
0xffffffff811903fa : sys_write+0x4a/0x90 [kernel]
0xffffffff81626e69 : system_call_fastpath+0x16/0x1b [kernel]

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

19. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от qux (ok) on 15-Фев-13, 21:31 
Cool, thank you! But before that I'd like to ensure that your case shall be reachable without installing kernel-debuginfo package. Otherwise that's just my bad setup.

However I'm not sure in the latter because debuginfo isn't necessary for panic() traces, for example.

I'm using Fedora 17 x64 (RFRemix, but it shouldn't affect the subject topic).

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

20. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от Stax (ok) on 15-Фев-13, 21:44 
kernel-debug это совсем не то: это ядро, скомпилированное в отладочном режиме.
Вам нужны именно -debuginfo (если мы говорим про федору, то пакеты kernel-версия-debuginfo и kernel-debuginfo-common-x86_64-версия).
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

21. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от qux (ok) on 15-Фев-13, 22:09 
> kernel-debug это совсем не то: это ядро, скомпилированное в отладочном режиме.

Да, debug отличается доп. проверками, а debuginfo функциональность не затрагивает, это дополнительная информация к коду в пакете kernel(-debug) в данном случае. Это просто было всё, что можно, кроме собственно debuginfo (:

> Вам нужны именно -debuginfo

Тут уже писал, почему тогда трейсы при панике отображаются и без -debuginfo? Здесь ведь по идее такое же, строки исходников домешивать не надо (для чего могло бы быть нужно -debuginfo).

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

9. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от ip1981 (ok) on 14-Фев-13, 21:33 
Того гляди, додумаются до CTF и нарушения ABI [1] :-)

[1] http://wiki.illumos.org/display/illumos/GCC+Modifications

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от mine (ok) on 14-Фев-13, 21:58 
чем это лучше lttng
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от Мяут (ok) on 14-Фев-13, 22:32 
Он динамический (не надо рекомпилять ядро)
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от ip1981 (ok) on 14-Фев-13, 22:43 
http://www.sourceware.org/systemtap/wiki/SystemtapDtraceComp...
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

14. "Релиз системы динамической отладки SystemTap 2.1"  +1 +/
Сообщение от анонимус (??) on 15-Фев-13, 03:17 
DTrace лучше
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Релиз системы динамической отладки SystemTap 2.1"  +/
Сообщение от Аноним (??) on 15-Фев-13, 11:24 
> DTrace лучше

DTrace тащетма для ядра другого типа разработан. Об чем первый аноним и сообщил. И, также, заметил, что, скорее всего, прикрутили эту шнягу "шоб було как у людей".

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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