The OpenNET Project / Index page

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

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

"Релиз системы динамической отладки SystemTap 2.0"  +/
Сообщение от opennews (??) on 11-Окт-12, 18:37 
Анонсирован (https://lkml.org/lkml/2012/10/9/703) релиз системы динамической трассировки SystemTap 2.0 (http://sourceware.org/systemtap/), предоставляющий для платформы Linux средства похожие на технологию DTrace. SystemTap позволяет организовать доскональное наблюдение за работающей Linux системой, производить сбор статистики о работе приложений, профилирование и контроль системных вызовов. Управление производится через интерфейс командной строки и специальный Си-подобный язык сценариев (http://sourceware.org/systemtap/documentation.html). Система протестирована с ядрами Linux начиная с версии 2.6.9 и заканчивая 3.6.

В развитии проекта участвуют такие компании как  Red Hat, IBM, Intel, Hitachi и Oracle. В каталоге примеров (http://sourceware.org/systemtap/examples/keyword-index.html) представлено более 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;


URL: https://lkml.org/lkml/2012/10/9/703
Новость: http://www.opennet.dev/opennews/art.shtml?num=35053

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

Оглавление

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


1. "Релиз системы динамической отладки SystemTap 2.0"  +/
Сообщение от Аноним (??) on 11-Окт-12, 18:37 
Как там интеграция с ванильным ядром? Патчи какие-нибудь еще требуются?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Релиз системы динамической отладки SystemTap 2.0"  +1 +/
Сообщение от Аноним (??) on 11-Окт-12, 18:39 
А то вот такие заявления
> Напомним, что начиная с ядра Linux 3.5 поддержка проверки приложений пространства пользователя с использованием SystemTap может осуществляться из коробки - все необходимые дополнения включены в состав ядра.

делаются регулярно, а потом оказывается, что без хитрых патчей 90% фич недоступно.

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

3. "Релиз системы динамической отладки SystemTap 2.0"  +/
Сообщение от Мяут (ok) on 11-Окт-12, 21:26 
Проблем с ванильным ядром особых никогда и не было. Иногда разве что тапсеты отваливаются, но как правило самая свежая версия SystemTap нормально работает с самым свежим ядром.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

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




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

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