The OpenNET Project / Index page

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

11.10.2012 12:25  Релиз системы динамической отладки SystemTap 2.0

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

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

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

  • Добавлен новый бэкенд dyninst, предоставляющий возможность анализа пользовательских процессов без необходимости загрузки специфичных модулей для ядра Linux и соответственно не требуя root-привилегий. Реализация в пространстве пользователя накладывает ряд ограничений, в частности, поддерживается только ограниченный набор контрольных вызовов (probes). Напомним, что начиная с ядра Linux 3.5 поддержка проверки приложений пространства пользователя с использованием SystemTap может осуществляться из коробки - все необходимые дополнения включены в состав ядра.

    Для выбора бэкенда в утилиту stap добавлена опция "--runtime", позволяющая выбирать между использованием функциональности уровня ядра ("--runtime=kernel") и реализацией "dyninst" ("--runtime=dyninst"). Для разделения функциональности бэкендов kernel и dyninst реорганизовано размещение tapset-ов, которые теперь разделены на две директории: специфичные для ядра Linux tapset-ы сохранены в директории linux/, а независимые от ядра в директории dyninst/;

  • Улучшения в языке сценариев:
    • В препроцессор языка сценариев SystemTap добавлена подсистема для работы с макросами, определяемыми через конструкцию "@define". Использование макросов допустимо в пользовательских скриптах и в stp-файлах, при этом макрос видим только внутри файла в котором он определён. Для создания глобальных макросов реализована возможность создания библиотек макросов, хранимых в файлах ".stpm".
    • Обеспечена возможность использования псевдонимов контрольных вызовов (probe alias) с указанием дополнительных суффиксов, которые формируют имена целевых контрольных вызовов, для которых был создан псевдоним. Например, псевдоним "probe foo = bar, baz { }" при обращении как "probe foo.subfoo.option("gronk") { }" приведёт к вызову bar.subfoo.option("gronk") и baz.subfoo.option("gronk"). Практический пример упрощения операций профилирования за счёт использования псевдонимов представлен в файле alias_suffixes.stp;
    • Добавлена поддержка условных переходов, позволяющих выбирать код для выполнения в зависимости от уровня привилегий;
    • Реализована операция склеивания разделённых строк, независимо от наличия разделяющих строки пробелов и комментариев. Например, строка "foo " /* comment */ "bar" будет воспринята как "foo bar";
  • Добавлены средства для диагностики крахов ядра, базирующиеся на использовании функции panic_notifier_list для вывода состояния во время краха;
  • Добавлен новый tapset "linux/panic.stp", задействующий функцию ядра panic();
  • В tapset linux/netfilter.stp добавлена поддержка ARP-пакетов;
  • В tapset-ы backtrace/unwind добавлена возможность произвольного доступа к отдельным элементам backtrace. Среди добавленных в tapset-ы backtrace/unwind новых функций: stack/ustack, callers/ucallers, print_syms/print_usyms и sprint_syms/sprint_usyms;


  1. Главная ссылка к новости (https://lkml.org/lkml/2012/10/...)
  2. OpenNews: Увидела свет система динамической трассировки SystemTap 1.8
  3. OpenNews: Релиз системы динамической отладки SystemTap 1.6
  4. OpenNews: Релиз системы динамической отладки SystemTap 1.2
  5. OpenNews: Анонсирован релиз системы динамической отладки SystemTap 1.0
  6. Использование systemtap для устранения уязвимости в реализации /proc/pid/mem
Лицензия: CC-BY
Тип: Программы
Ключевые слова: systemtap, tapset, debug, trace, linux, kernel
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение RSS
 
  • 1, Аноним (-), 18:37, 11/10/2012 [ответить]    [к модератору]
  • +/
    Как там интеграция с ванильным ядром? Патчи какие-нибудь еще требуются?
     
     
  • 2, Аноним (-), 18:39, 11/10/2012 [^] [ответить]     [к модератору]
  • +1 +/
    А то вот такие заявления делаются регулярно, а потом оказывается, что без хитрых... весь текст скрыт [показать]
     
  • 3, Мяут (ok), 21:26, 11/10/2012 [^] [ответить]    [к модератору]  
  • +/
    Проблем с ванильным ядром особых никогда и не было. Иногда разве что тапсеты отваливаются, но как правило самая свежая версия SystemTap нормально работает с самым свежим ядром.
     

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


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