SystemTap

SystemTap
SystemTap
Тип

Трассировка

Разработчик

сообщество

Написана на

C++, пользовательские скрипты

Операционная система

Linux

Первый выпуск

2005

Последняя версия

1.8 (17 июня 2012)

Лицензия

GNU General Public License

Сайт

http://sourceware.org/systemtap/

SystemTap — средство, которое позволяет собирать и анализировать информацию о работающей Linux-системе.

В отличие от встроенных средств, таких как netstat, ps, top, SystemTap был разработан с целью предоставить больше возможностей для сбора и представления информации.

SystemTap представляет собой интерфейс командной строки и скриптовый язык.

Системные администраторы могут использовать SystemTap для мониторинга и анализа производительности системы, а разработчики программного обеспечения могут использовать SystemTap для анализа поведения приложения в работающей системе.

В разработке проекта SystemTap участвуют такие компании как Red Hat, IBM, Oracle Corporation, Hitachi.[1]

Содержание

Принцип работы

Основная идея SystemTap состоит в том, чтобы обозначить события и назначить для них обработчики.

Во время выполнения скрипта, SystemTap занимается мониторингом событий и, как только произойдет событие, ядро системы выполнит обработчик.

Событиями могут быть начало или конец сессии SystemTap, срабатывание таймера и другие.

Обработчиком является последовательность скриптовых операторов, которые будут выполнены после срабатывания события. Обычно обработчики извлекают информацию из контекста события или выводят информацию на экран.

Сессия SystemTap начинается тогда, когда мы выполняем скрипт. В это время происходит следующая последовательность действий:

  1. Сначала SystemTap проверяет библиотеку «тапсетов» на наличие использованных в скрипте;
  2. Потом SystemTap транслирует скрипт в C и запускает системный компилятор, чтобы создать модуль ядра из скрипта;
  3. SystemTap загружает модуль и активирует все события в скрипте;
  4. Как только происходит событие выполняется обработчик данного события;
  5. Когда все события выполнены, модуль выгружается и сессия завершается.

Скрипты

События

Синхронные события

Синхронные события привязаны к инструкции в определенном месте в коде ядра.

Примеры синхронных событий:

  • syscall.system_call
  • vfs.file_operation
  • kernel.function("function")
  • module("module").function("function")

Асинхронные события

Асинхронные события не привязаны к определенной инструкции или определенному месту в коде ядра.

Примеры асинхронных событий:

  • begin — начало сессии SystemTap
  • end — конец сессии SystemTap
  • timer.event() — отсчет таймера (timer.s(4) — событие будет срабатывать каждые 4 секунды)

Обработчики

Обработчик события заключается в фигурные скобки ({}).

Для вывода на экран используется функция форматного вывода printf («format string\n», arguments), которая схожа с аналогичной функцией в C.

Некоторые функций SystemTap для использования совместно с printf():

  • pid() — ID процесса
  • uid() — ID пользователя
  • execname() — название процесса
  • cpu() — номер процессора

Пример скрипта

Скрипт:

 probe syscall.open
 {
     printf ("%s(%d) open\n", execname(), pid())
 }

Результат:

 vmware-guestd(2206) open
 hald(2360) open
 hald(2360) open
 hald(2360) open
 df(3433) open
 df(3433) open
 df(3433) open
 hald(2360) open


См. также

Примечания

Ссылки

Главная страница SystemTap


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "SystemTap" в других словарях:

  • SystemTap — Infobox Software name = SystemTap caption = developer = Various released = 2006 frequently updated = yes programming language = C++, custom scripting operating system = Linux language = genre = Tracing license = GNU General Public License website …   Wikipedia

  • Maemo (operating system) — infobox OS name = Maemo caption = Screenshot of OS2008 website = [http://www.maemo.org/ www.maemo.org] developer = Nokia family = Linux source model = Largely open source with closed source components latest release version = 4.1 / OS2008… …   Wikipedia

  • Maemo — Screenshot of Maemo 5 Company / developer open s …   Wikipedia

  • Linux Technology Center — The IBM Linux Technology Center (LTC) is an organization focused on development for the Linux kernel and related open source software projects. In 1999, IBM created the LTC to combine its software developers interested in Linux and other open… …   Wikipedia

  • Dprobes — (Dynamic Probes) is a Linux kernel analysis framework created in 2004, which features the ability to insert software probes dynamically into running code. It based on kprobes History First versions was released at June, 2004. dprobes was first… …   Wikipedia

  • Linux kernel — Linux Linux kernel 3.0.0 booting Company / developer Linus Torvalds and thousands …   Wikipedia

  • DTrace — Developer(s) Sun Microsystems Initial release January 2005 Development status active Operating system Solaris, Mac OS X, FreeBSD, NetBSD …   Wikipedia

  • Strace — is a debugging utility in Linux to monitor the system calls used by a program and all the signals it receives, similar to truss utility in other Unix systems. This is made possible by a Linux kernel feature known as ptrace .A similar utility is… …   Wikipedia

  • Comparison of operating system kernels — A kernel is the core component of every computer operating system. While kernels are highly technical in nature, and may be hidden from the user under many layers of software and applications, they do have distinguishing or characteristic… …   Wikipedia

  • Kernel marker — Kernel markers are a kernel feature which permits tracing of kernel user space interaction. A marker can be on or off depending on whether a probe is connected to it or not. It may cause a slight overhead for certain operations.Mathieu Desnoyers… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»