Увидела свет система динамической трассировки SystemTap 1.8
Представлен релиз системы динамической трассировки SystemTap 1.8, предоставляющий для платформы Linux средства похожие на технологию DTrace. SystemTap позволяет организовать доскональное наблюдение за работающей Linux системой, производить сбор статистики о работе приложений, профилирование и контроль системных вызовов. Управление производится через интерфейс командной строки и специальный Си-подобный язык сценариев.В развитии проекта участвуют такие компании как Red Hat, IBM, Intel, Hitachi и Oracle. В каталоге примеров представлено более 100 скриптов на все случаи жизни, подходящие для слежения за распределением памяти, вводом/выводом, дисковыми операциями, сетевым трафиком (например, анализ работы NFS), работой планировщика задач, обработкой прерываний, использованием системных буферов, установкой блокировок, выполнением системных вызовов, обработкой сигналов и т.п.
Основные улучшения версии 1.8:
- Поддержка проверки приложений пространства пользователя из коробки начиная с выпуска ядра 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 записей при нехватке свободного места на дисковом разделе.
© OpenNet