[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по настройке производительности


Описание функции трассировки

Функция трассировки является более гибким средством, чем стандартные системные мониторы, которые позволяют просмотреть статистику, собираемую системой. Эта функция не поддерживает автоматический выбор параметров, вместо этого она выполняет трассировку потока событий и позволяет пользователю выбрать нужную информацию для извлечения. При работе с такими мониторами обработка данных (преобразование системных событий в статистику) в большой степени связана с набором инструментов, доступных в системе. Например, во многих системах можно получить информацию о минимальном, максимальном и среднем времени выполнения некоторой задачи A.

Функция трассировки не сокращает объем данных до необходимого объема, а создает поток событий трассировки (обычно кратко называемый события). При этом не требуется заранее указывать, какие статистические данные требуются; обработка данных практически не зависит от набора инструментов системы. Пользователь может задать выбор минимального, максимального и среднего значения из потока событий для задания А. Кроме того, вы можете:

Такая гибкость полезна при диагностике производительности или неполадок в работе системы.

Функция трассировки не только предоставляет подробную информацию о деятельности системы, но и позволяет отслеживать события приложений вместе с системными событиями. В файл трассировки заносится полная информация о деятельности приложения и системы в правильной последовательности и с указанием точного системного времени.

Реализация

Точка трассировки - это определенное отслеживаемое событие. Этому событию присваивается уникальный номер, называемый ИД точки. Эти точки можно просмотреть с помощью команды trace.

Команда trace служит для сбора статистических данных о процессах пользователей и подсистемах ядра. Двоичная информация заносится в два альтернативных буфера в памяти. После этого процесс trace передает информацию в файл протокола трассировки на диске. Размер этого файла быстро растет. Программа trace выполняется в виде процесса, который можно отслеживать с помощью команды ps. Команда trace выполняется в виде демона, аналогично программе учета.

На следующем рисунке изображена реализация функции трассировки.

Рис. 12-1. Реализация функции трассировки. На этом рисунке изображен процесс трассировки. При его выполнении пользовательский процесс (подсистемы ядра) отправляет запросы на точки трассировки для трассировки буферов А и Б. После обработки буферов эти запросы передаются на драйвер трассировки и в файл протокола трассировки пользовательского ядра.
Рисунок h11f8

При отслеживании различных функций используются системные ресурсы. Вообще говоря, связанная с этим дополнительная нагрузка должна быть относительно мала и не должна влиять на выполнение программ. При выполнении программы trace дополнительная нагрузка на CPU не превышает 2 процентов. При переполнении буфера и записи данных в файл протокола нагрузка на CPU возрастает по причине выполнения операций ввода-вывода. При этом, как правило, она не превышает 5 процентов. Если в системе недостаточно памяти, то, поскольку программа trace использует память буфера, это может значительно повлиять на производительность системы. Учтите, что файлы отчета и протокола трассировки могут стать очень большими.

Ограничение объема данных трассировки

Функция трассировки собирает много различных данных. Если трассировка выполняется в течение длительного периода времени, память переполняется. Существует два способа эффективного использования этой функции трассировки:

Запуск и управление трассировкой

Функция трассировки может выполняться в трех режимах:

Режим субкоманд
Трассировка запускается с помощью команды оболочки (trace) и управляется с помощью субкоманд. Рабочая схема для трассировки должна быть запущена другими процессами, так как исходный процесс оболочки используется.

Режим команд
Трассировка запускается с помощью команды оболочки (trace -a) с флагом, задающим асинхронное выполнение функции трассировки. Исходный процесс оболочки может вызывать обычные команды, в том числе и команды управления трассировкой.

Режим управления из приложений
Трассировка запускается с помощью функции trcstart() и управляется из приложения с помощью вызовов функции, таких как trcon() и trcoff().

Форматирование данных трассировки

С помощью команды trcrpt можно вызвать функцию создания отчетов о трассировке общего назначения. Эта команда лишь незначительно сокращает объем данных, но при этом преобразует поток двоичных данных в текстовую форму. Полученные данные можно просмотреть с помощью программы чтения, либо направить их на дальнейшую обработку с помощью специально созданных средств.

Средство создания отчета выводит описание событий в соответствии с правилами, заданными в файле формата трассировки. По умолчанию формат трассировки хранится в файле /etc/trcfmt, который содержит раздел для каждого ИД события. Таким образом, каждый раздел позволяет задать правила форматирования отчета для отдельного события. Благодаря такому подходу пользователи могут добавлять собственные события для своих программ и включать для них соответствующие разделы настройки в файл формата.

Просмотр данных трассировки

В отформатированном выводе трассировки информация о событии занимает одну строку. В дополнительных строках может быть указан некоторая вспомогательная информация. В зависимости от параметров форматирования, длина строк может превышать 80 символов. Лучше всего просматривать отчеты на устройствах вывода, поддерживающих ширину текста в 132 колонки.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]