The OpenNET Project
 
Поиск (теги):    НОВОСТИ (+) КОНТЕНТ WIKI MAN'ы ФОРУМ

14.02.2013 16:45  Релиз системы динамической отладки SystemTap 2.1

Представлен релиз системы динамической трассировки SystemTap 2.1, предоставляющий для платформы Linux средства похожие на технологию DTrace. SystemTap позволяет организовать доскональное наблюдение за работающей Linux системой, производить сбор статистики о работе приложений, профилирование и контроль системных вызовов. Управление производится через интерфейс командной строки и специальный Си-подобный язык сценариев. Система протестирована с ядрами Linux начиная с версии 2.6.9 и заканчивая 3.8-rc.

В развитии проекта участвуют такие компании как Red Hat, IBM, Intel, Hitachi и Oracle. В каталоге примеров представлено более 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 и близка по возможностям и синтаксису к 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 - набор демонстрационных игр.


  1. Главная ссылка к новости (https://lkml.org/lkml/2013/2/13/525...)
  2. OpenNews: Релиз системы динамической отладки SystemTap 2.0
  3. OpenNews: Увидела свет система динамической трассировки SystemTap 1.8
  4. OpenNews: Релиз системы динамической отладки SystemTap 1.6
  5. OpenNews: Релиз системы динамической отладки SystemTap 1.2
  6. OpenNews: Анонсирован релиз системы динамической отладки SystemTap 1.0
Тип: Программы
Ключевые слова: systemtap, dtrace, trace, debug, (найти похожие документы)
При перепечатке указание ссылки на opennet.ru обязательно
Реклама
Обсуждение Линейный вид (Ajax) | Показать все | RSS
 
  • 1.1, Аноним, 17:19, 14/02/2013 [ответить] [смотреть все]
  • –5 +/
    Вот знаете, что прикольно Как же сильно СПО болеет NIH Сейчас, поясню, Шигори... весь текст скрыт [показать]
     
     
  • 2.2, бедный буратино, 17:32, 14/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Как же сильно аноним болеет Вкаждойбочкезатычизмом экспертного мнения ... весь текст скрыт [показать] [показать ветку]
     
  • 2.3, all_glory_to_the_hypnotoad, 17:55, 14/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    DTrace не СПО, балбес И никак его нельзя засунуть в линуховое ядро Ибо кроме л... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.22, Xm8230, 10:43, 16/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Вполне себе СПО, но опубликованно под CDDL CDDL с вирусом GPL несовместимо, пот... весь текст скрыт [показать]
     
  • 2.4, кевин, 18:02, 14/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +5 +/
    так нагладно показывать собственную некомпетентость не умею даже я 1 0 в твою п... весь текст скрыт [показать] [показать ветку]
     
  • 2.6, qux, 18:07, 14/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Откуда инфа ... весь текст скрыт [показать] [показать ветку]
     
  • 2.13, umbr, 02:11, 15/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Лицензия у DTrace CDDL and proprietary... весь текст скрыт [показать] [показать ветку]
     
     ....нить скрыта, показать (6)

  • 1.5, qux, 18:07, 14/02/2013 [ответить] [смотреть все]  
  • +/
    Кто знает в чем проблема (почему одни адреса, без символов)?
    При первом запуске: WARNING: missing unwind/symbol data for module 'kernel'
    В /proc/kallsyms и /boot/System.map-* символы есть. Systemtap криво собран?

    [CODE]# 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)[/CODE]

     
     
  • 2.7, ананим, 19:46, 14/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Очевидно 8212 нет символов http sourceware org systemtap SystemTap_Beginne... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.8, qux, 21:14, 14/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Но для трейса при панике есть же Пусть бы генерило подобный С -devel -debuginf... весь текст скрыт [показать]
     
     
  • 4.17, qux, 14:39, 15/02/2013 [^] [ответить] [смотреть все]  
  • +/
    На kernel-debug с установленным devel то же самое Тащить еще 300мб пожатого -... весь текст скрыт [показать]
     
     
  • 5.18, Frank Ch. Eigler, 20:15, 15/02/2013 [^] [ответить] [смотреть все]  
  • +/
    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]

     
     
  • 6.19, qux, 21:31, 15/02/2013 [^] [ответить] [смотреть все]  
  • +/
    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).

     
  • 5.20, Stax, 21:44, 15/02/2013 [^] [ответить] [смотреть все]  
  • +/
    kernel-debug это совсем не то: это ядро, скомпилированное в отладочном режиме.
    Вам нужны именно -debuginfo (если мы говорим про федору, то пакеты kernel-версия-debuginfo и kernel-debuginfo-common-x86_64-версия).
     
     
  • 6.21, qux, 22:09, 15/02/2013 [^] [ответить] [смотреть все]  
  • +/
    > kernel-debug это совсем не то: это ядро, скомпилированное в отладочном режиме.

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

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

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

     
  • 3.9, ip1981, 21:33, 14/02/2013 [^] [ответить] [смотреть все]  
  • +/
    Того гляди, додумаются до CTF и нарушения ABI [1] :-)

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

     
  • 1.10, mine, 21:58, 14/02/2013 [ответить] [смотреть все]  
  • +/
    чем это лучше lttng
     
     
  • 2.11, Мяут, 22:32, 14/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Он динамический (не надо рекомпилять ядро)
     
  • 2.12, ip1981, 22:43, 14/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    http://www.sourceware.org/systemtap/wiki/SystemtapDtraceComparison
     
  • 1.14, анонимус, 03:17, 15/02/2013 [ответить] [смотреть все]  
  • +1 +/
    DTrace лучше
     
     
  • 2.16, Аноним, 11:24, 15/02/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    DTrace тащетма для ядра другого типа разработан Об чем первый аноним и сообщил ... весь текст скрыт [показать] [показать ветку]
     

    Ваш комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:
     
    Навигация
     
     Новости для экспорта XML
     В социальных сетях:  twitter    
     Сводные | за день | мини-новости
     Разделы новостей
     Что нового на OpenNet
     Поиск в новостях
     Новые комментарии
     Добавить свою новость

    Важное

    Советы
    - 17.08 Простой способ существенно увеличить производительность открытого драйвера RadeonSI
    - 02.06 Увеличение числа вкладок, вмещающихся в строке Firefox
    - 01.06 Как в mpd5 присвоить определенный номер для ng интерфейса
    - 09.04 Блокирование попыток эксплуатации heartbeat-уязвимости в OpenSSL средствами iptables
    - 04.04 Создание чистого openvz-контейнера на основе CentOS 6

    Обсуждаемые новости
    - 19:57 Red Hat представил программу раннего доступа к наработкам дл (23)
    - 19:46 Выпуск systemd 216 c networkctl и кэширующим DNS Resolver (183)
    - 19:42 Линус Торвальдс ждёт от Linux появления нормального десктопа (100)
    - 19:41 Релиз KDE 4.14 (26)
    - 19:22 Администрация Мюнхена создаст рабочую группу для анализа про (327)
    - 18:55 Вышла версия 2.066 компилятора языка D (100)
    - 18:55 Портам FreeBSD исполнилось 20 лет (29)
    - 17:58 Обновление Java SE 8 Update 20 (23)


      Закладки на сайте
      Проследить за страницей
    Created 1996-2014 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList