URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 85118
[ Назад ]

Исходное сообщение
"Увидела свет система динамической отладки SystemTap 1.8"

Отправлено opennews , 18-Июн-12 14:37 
Представлен (https://lkml.org/lkml/2012/6/17/64) релиз системы динамической трассировки SystemTap 1.8 (http://sourceware.org/systemtap/), предоставляющий для платформы Linux средства похожие на технологию DTrace. SystemTap позволяет организовать доскональное наблюдение за работающей Linux системой, производить сбор статистики о работе приложений, профилирование и контроль системных вызовов. Управление производится через интерфейс командной строки и специальный Си-подобный язык сценариев (http://sourceware.org/systemtap/documentation.html).

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

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

-  Поддержка проверки приложений пространства пользователя из коробки начиная с выпуска ядра 3.5-rc, без необходимости использования модифицированного ядра Linux;

-  Поддержка контрольных вызовов (probes) для подсистемы netfilter. Набор сопутствующих инструментов представлен в tapset-е netfilter.stp;
-  Полная поддержка IPv6 в tapset-ах и сервере/клиенте компиляции скриптов;
-  В сервере компиляции сценариев (systemtap compile-server) обеспечена поддержка параллельной обработки одновременных соединений (управление через опцию "--max-threads");
-  Поддержка секций ".debug_types", определённых в отладочном формате DWARF4 (например, используется когда исполняемый файл или библиотека собраны свежими версиями GCC с опцией -gdwarf-4 или -fdebug-types-section);
-  Реализация конструкции @var(), которую можно использовать для доступа к переменным в глобальной области видимости.
Например, указав @var("somevar@some/src/file.c") можно получить доступ к значению переменной somevar, определённой в файле "some/src/file.c".


-  Поддержка в stap возможности ограничения ресурсов (--rlimit-as=NUM, --rlimit-cpu=NUM, --rlimit-nproc=NUM, --rlimit-stack=NUM, --rlimit-fsize=NUM);


-  Тестирование работы в широком спектре версий ядра Linux, от 2.6.9 до 3.5-rc.
-  Добавлен новый tapset  guru-delay.stp, позволяющий внедрять задержки в операции ядра. Обновлены tapset-ы: syscalls.stp (поддержка системных вызовов ядра 3.5-rc), dentry.stp, context-caller.stp, s390/registers.stp , inet_*.stp (расширено число доступных в непривилегированном режиме функций), inet_*.stp (поддержка IPv6);
-  Новые примеры использования SystemTap:


-  netfilter_drop.stp  - отбрасывание заданных исходящих пакетов;
-  netfilter_summary.stp - показ TCP/IP трафика по адресу источника и назначения;
-  psig.stp  - показ активных обработчиков сигналов для указанного процесса;
-  auditbt.stp - генерация обратной трассировки (backtraces) для пользовательсного процесса для заданных событий аудита;
-  nfsdtop.stp  - вывод суммарных данных о выполняемых запросах в NFS;
-  pf3.stp  - формирование профиля взаимодействия  ядра и пользовательского процесса;
-  enospc.stp - создание в syslog записей при нехватке свободного места на дисковом разделе.

URL: https://lkml.org/lkml/2012/6/17/64
Новость: http://www.opennet.me/opennews/art.shtml?num=34125


Содержание

Сообщения в этом обсуждении
"Увидела свет система динамической отладки SystemTap 1.8"
Отправлено Аноним , 18-Июн-12 14:37 
> Поддержка проверки приложений пространства пользователя из коробки начиная с выпуска ядра 3.5-rc, без необходимости использования модифицированного ядра Linux;

Т.е. systemtap фактически уже принят в ядро?


"Увидела свет система динамической отладки SystemTap 1.8"
Отправлено ананим , 18-Июн-12 14:52 
давно уже.
достаточно установить дебагинфо в большинстве дистрибутивов или скомпилировать так:
(KPROBES) - this can be enabled in 'Instrumentation Support -> Kprobes'."
(RELAY) - this can be enabled in 'General setup -> Kernel->user space relay support (formerly relayfs)'."
(DEBUG_FS) - this can be enabled in 'Kernel hacking -> Debug Filesystem'."

"Увидела свет система динамической отладки SystemTap 1.8"
Отправлено Andrey Mitrofanov , 18-Июн-12 15:12 
>> Поддержка проверки приложений пространства пользователя из коробки начиная с выпуска ядра 3.5-rc, без необходимости использования модифицированного ядра Linux;
> Т.е. systemtap фактически уже принят в ядро?

У них в доке, вроде, написано, что для испоьзования нужна только debug-инфо от ядра. И работатет оно чуть не 2.6.9.

Про 3.5-rc, я думаю они отдельно написали, потому как в 3.5 включили конкурента - uprobe - и, то ли нужно было отдельно указать, что оно, таки да, работает, то ли нужно было с таким ядром совместимость отдельно допиливать.


"Увидела свет система динамической отладки SystemTap 1.8"
Отправлено Мяут , 18-Июн-12 23:46 
SystemTap никогда ничего и не писал в ядро (хотя собирает и загружает модули ядра для трассировки). Его изначально таким спроектировали.

"Увидела свет система динамической отладки SystemTap 1.8"
Отправлено ананим , 19-Июн-12 02:14 
Не совсем верно.
Во-первых нужен кпробе, во-вторых такие кпробе нужны для кучи подсистем, например для вайфая.
Я выше написал минимум для запуска.

"Увидела свет система динамической трассировки SystemTap 1.8"
Отправлено alexgpg , 19-Июн-12 01:52 
А есть инфа по практическому использованию его для трассировки своих приложений?

"Увидела свет система динамической трассировки SystemTap 1.8"
Отправлено ананим , 19-Июн-12 02:12 
2 абзац, 2 предложение.
Сложно, но вы всё же попробуйте дочитать. Там даже ссыдь есть.

"Увидела свет система динамической трассировки SystemTap 1.8"
Отправлено alexgpg , 19-Июн-12 08:56 
> 2 абзац, 2 предложение.
> Сложно, но вы всё же попробуйте дочитать. Там даже ссыдь есть.

В упор не вижу там, как встраивать датчики в свое приложение. Или как им мониторить/трассировать свое работающее приложение. Или отчета о стабильности это штуки. Это интересно.