Сервис записи системной трассы в файл событий
tracelogger [-cEPRrw] [-A атрибут] [-b число] [-d режим] [-F фильтр] [-f файл] [-k число] [-M -S размер] [-n число] [-s число] [-v[v...]]
- -A атрибут
- Указать атрибут для добавления в журнал. Для значения атрибут предусмотрен формат имя=значение, где имя и значение представлены произвольными строками. Может быть передано несколько опций -A.
 | Использование следующих имен или значений недопустимо: При использовании этого значения утилита tracelogger выводит сообщение и игнорирует указанный атрибут. |
Эту опцию можно указать несколько раз для добавления информации, используемой для идентификации регистрируемого сценария. Пример:
tracelogger -s1 -A MACHINE_NAME=tx86 -A PERIOD=1s
- -b число
- Максимальное число динамических буферов, выделяемых сервисом tracelogger. Значение по умолчанию –
64
. Размер каждого буфера составляет приблизительно 11 Кб.
- -c
- Работать в непрерывном режиме. По умолчанию утилита работает в итерационном режиме.
- -d режим
- В настоящее время режим может принимать следующие значения:
- 1 ("Один")
- Запустить в режиме сервиса (в режиме "демона"). Если не указана опция -E, утилита tracelogger игнорирует все остальные опции, а конфигурирование, запуск и останов трассировки выполняются приложениями (см. TraceEvent()).
- -E
- Использовать расширенный режим сервиса (-d1) путем применения других опций для утилиты tracelogger. Также опция настраивает исходный перечень принимаемых событий. Для начала перехвата событий трассировки для используемого приложения по прежнему требуется вызов функции TraceEvent().
- -f файл
- Имя файла для сохранения зарегистрированных событий. По умолчанию используется файл
/dev/shmem/tracebuffer.kev
.
- -F фильтр
- Режим фильтрации в зависимости от выбранного фильтра:
- 0
- Не выполнять фильтрацию.
- 1
- Деактивировать класс вызовов Kernel.
- 2
- Деактивировать класс Interrupt.
- 3
- Деактивировать класс Process.
- 4
- Деактивировать класс Thread.
- 5
- Деактивировать класс VThread.
- 6
- Деактивировать класс Communication.
- 7
- Деактивировать класс System.
Можно указать несколько фильтров путем определения нескольких опций -F. Например, для одновременной деактивации классов Interrupt и VThread следует указать опции -F2 -F5.
- -k число
- Число буферов, выделяемых в микроядре. Значение по умолчанию –
32
. Размер каждого буфера составляет приблизительно 16 Кб.
- -M
- Выполнить отображение журнала регистрации вместо записи. В случае использования этой опции журнал регистрации должен храниться в разделяемой памяти. Кроме того, следует установить опцию -S для определения максимального размера файла.
- -n число
- Число итераций для регистрации данных в итерационном режиме. Значение по умолчанию –
32
. Для определения неограниченного числа итераций следует указать значение 0
.
- -P
- Сохранить буферы трассировки ядра в блоке разделяемой памяти в
/dev/shmem
. Если указана эта опция, утилита tracelogger не освобождает внутреннюю буферную память ядра при завершении работы. При последующих запусках можно указать опцию -R для повторного использования утилитой tracelogger тех же буферов без перераспределения памяти.
- -R
- Повторно использовать буферы трассировки ядра, созданные ранее при использовании опции -P. В случае отсутствия буферов для повторного использования утилита tracelogger выделяет новые буферы ядра.
- -r
- Установить кольцевой режим для буфера ядра. По умолчанию используется линейный режим.
- -s число
- Число секунд для регистрации в непрерывном режиме (в соответствии с опцией -c). Значение по умолчанию –
0
, указывающее неограниченную продолжительность.
- -S размер
- Максимальный размер журнала.
M
– мегабайты, K
– килобайты. Если буква M
или K
не используется, единицей измерения считается байт. Эта опция обязательна, если используется опция - M
.
- -v[v...]
- Вывести расширенную информацию; чем больше символов v, тем более подробная информация выводится.
- -w
- Регистрировать события в расширенном режиме. По умолчанию выполняется регистрация событий в быстром режиме.
 | - Эту утилиту может выполнить только пользователь
root . - Для обеспечения возможности регистрации событий трассировки в системе должна выполняться инструментальная версия микроядра procnto*-instr.
|
ЗОСРВ «Нейтрино»
aarch64, arm, armv7, e2k, mips, ppc, x86
Сервис tracelogger получает события из инструментального ядра ( procnto*-instr) и сохраняет их в файл или на устройство для последующего анализа. По умолчанию сервис сохраняет события в файл /dev/shmem/tracebuffer.kev
(от англ. Kernel EVents).
Запустить сервис tracelogger можно со следующими параметрами:
- -n число
- Ядро записывает события во внутренний буфер. Сервис логирует события в пределах запрошенного количества итераций, после чего завершает свою работу.
- -r
- Ядро записывает события во внутренний кольцевой буфер, но сервис не логирует события до поступления сигнала
SIGINT
или вызов прикладным кодом TraceEvent( _NTO_TRACE_STOP ). - -d1
- Функционирование сервиса в режиме "демона". Ядро не записывает события и сервис не логирует их до вызова прикладным кодом TraceEvent( _NTO_TRACE_START ). Процедура не завершается до терминирования сервиса или вызова прикладным кодом TraceEvent( _NTO_TRACE_STOP ).
- -s число
- Ядро записывает события во внутренний буфер. Сервис логирует события в пределах указанного временного интервала, после чего завершает свою работу.
- -c
- Ядро записывает события во внутренний буфер. Сервис логирует события до своего завершения.
Самый простой способ настройки трассировки – запуск tracelogger в обычном или расширенном режимах (-d1 -E). В этом случае сервис выполняет инициализацию и контроль модуля трассировки микроядра, а также сохранение трассы в файл. В расширенном режиме сервис будет ожидать вызова прикладным кодом TraceEvent(). Кроме определения числа буферов трассировки ядра при инициализации, сервис занимается исключительно логированием событий.
 | В SMP-системах рассинхронизация временных меток может приводить к неоднозначной трактовке данных в трассе. |
Запуск tracelogger в расширенном режиме с выводом информации о функционировании системы на экран консоли; сохранение регистрируемых данных в указанный файл и прекращение регистрации после заполнения 12 буферов трассировки:
tracelogger -f /dev/shmem/my_tracebuffer -n 12 -w
Запуск tracelogger в кольцевом режиме (фоновом) с использованием 5 внутренних буферов и ожиданием асинхронного сигнала (например, Ctrl - C
) для его останова:
tracelogger -r -b 5
Выполнение tracelogger в непрерывном режиме на протяжении 20 секунд:
tracelogger -c -s20
- -1
- Возникла ошибка.
К завершению работы tracelogger могут привести лишь очень серьезные системные ошибки.
Единовременно следует выполнять только один экземпляр tracelogger. Также не следует запускать tracelogger, если в это время идёт сбор трассы событий, инициированный другим сервисом, например, qconn.
Базовые подсистемы ЗОСРВ «Нейтрино»
procnto*-instr, qconn, traceprinter
TraceEvent()
Предыдущий раздел: Сервисы