Функция трассировки является более гибким средством, чем стандартные системные мониторы, которые позволяют просмотреть статистику, собираемую системой. Эта функция не поддерживает автоматический выбор параметров, вместо этого она выполняет трассировку потока событий и позволяет пользователю выбрать нужную информацию для извлечения. При работе с такими мониторами обработка данных (преобразование системных событий в статистику) в большой степени связана с набором инструментов, доступных в системе. Например, во многих системах можно получить информацию о минимальном, максимальном и среднем времени выполнения некоторой задачи A.
Функция трассировки не сокращает объем данных до необходимого объема, а создает поток событий трассировки (обычно кратко называемый события). При этом не требуется заранее указывать, какие статистические данные требуются; обработка данных практически не зависит от набора инструментов системы. Пользователь может задать выбор минимального, максимального и среднего значения из потока событий для задания А. Кроме того, вы можете:
Такая гибкость полезна при диагностике производительности или неполадок в работе системы.
Функция трассировки не только предоставляет подробную информацию о деятельности системы, но и позволяет отслеживать события приложений вместе с системными событиями. В файл трассировки заносится полная информация о деятельности приложения и системы в правильной последовательности и с указанием точного системного времени.
Точка трассировки - это определенное отслеживаемое событие. Этому событию присваивается уникальный номер, называемый ИД точки. Эти точки можно просмотреть с помощью команды trace.
Команда trace служит для сбора статистических данных о процессах пользователей и подсистемах ядра. Двоичная информация заносится в два альтернативных буфера в памяти. После этого процесс trace передает информацию в файл протокола трассировки на диске. Размер этого файла быстро растет. Программа trace выполняется в виде процесса, который можно отслеживать с помощью команды ps. Команда trace выполняется в виде демона, аналогично программе учета.
На следующем рисунке изображена реализация функции трассировки.
Рис. 12-1. Реализация функции трассировки. На этом рисунке изображен процесс трассировки. При его выполнении пользовательский процесс (подсистемы ядра) отправляет запросы на точки трассировки для трассировки буферов А и Б. После обработки буферов эти запросы передаются на драйвер трассировки и в файл протокола трассировки пользовательского ядра.
При отслеживании различных функций используются системные ресурсы. Вообще говоря, связанная с этим дополнительная нагрузка должна быть относительно мала и не должна влиять на выполнение программ. При выполнении программы trace дополнительная нагрузка на CPU не превышает 2 процентов. При переполнении буфера и записи данных в файл протокола нагрузка на CPU возрастает по причине выполнения операций ввода-вывода. При этом, как правило, она не превышает 5 процентов. Если в системе недостаточно памяти, то, поскольку программа trace использует память буфера, это может значительно повлиять на производительность системы. Учтите, что файлы отчета и протокола трассировки могут стать очень большими.
Функция трассировки собирает много различных данных. Если трассировка выполняется в течение длительного периода времени, память переполняется. Существует два способа эффективного использования этой функции трассировки:
Функция трассировки может выполняться в трех режимах:
С помощью команды trcrpt можно вызвать функцию создания отчетов о трассировке общего назначения. Эта команда лишь незначительно сокращает объем данных, но при этом преобразует поток двоичных данных в текстовую форму. Полученные данные можно просмотреть с помощью программы чтения, либо направить их на дальнейшую обработку с помощью специально созданных средств.
Средство создания отчета выводит описание событий в соответствии с правилами, заданными в файле формата трассировки. По умолчанию формат трассировки хранится в файле /etc/trcfmt, который содержит раздел для каждого ИД события. Таким образом, каждый раздел позволяет задать правила форматирования отчета для отдельного события. Благодаря такому подходу пользователи могут добавлять собственные события для своих программ и включать для них соответствующие разделы настройки в файл формата.
В отформатированном выводе трассировки информация о событии занимает одну строку. В дополнительных строках может быть указан некоторая вспомогательная информация. В зависимости от параметров форматирования, длина строк может превышать 80 символов. Лучше всего просматривать отчеты на устройствах вывода, поддерживающих ширину текста в 132 колонки.