READPROFILE(8)

НАЗВА
readprofile - витання даних профілювання ядра

КОРОТКИЙ ОПИС

readprofile [параметри]

ВЕРСІЯ

На цій сторінці підручника описано версію 2.0 програми.

ОПИС

Програма readprofile використовує відомості /proc/profile для виведення даних ascii до стандартного виведення. Виведені дані буде поділено між трьома стовпчиками: у першому буде виведено такти годинника, у другому - назву функції C у ядрі, у якій відбулася ця кількість тактів, а у третьому - нормалізоване «навантаження» процедури, обчислене, як відношення кількості тактів до довжини процедури. Виведені дані буде доповнено пробілами для полегшення читання.

This utility is a diagnostic tool and is not designed or intended for use in security-sensitive contexts (e.g., setuid, setgid, sudo, or similar privilege-elevation scenarios). It is installed without any special permissions.

ПАРАМЕТРИ

-a, --all
    Вивести усі символи у файлі карти. Типово, процедури із повідомленими позначками виведено не буде.

-b, --histbin
    Вивести окремі значення позначок гістограми .

-i, --info
    Відомості. Наказує readprofile лише вивести крок профілювання, який використано ядром. Крок профілювання є роздільністю буфера профілювання. Його вибір відбувається під час налаштовування ядра (за допомогою make config) або у рядку команди ядра. Якщо використано перемикач -t (terse) разом із -i, буде виведено лише десяткове число.

-m, --mapfile файл-карти
    Specify a mapfile, which by default is /boot/System.map. You should specify the map file on cmdline if your current kernel isn’t the last one you compiled, or if you keep System.map elsewhere. If the name of the map file ends with .gz it is decompressed on the fly.

-n, --no-auto
    Disable automatic byte order detection.

-M, --multiplier множник
    На деяких архітектурах можна змінювати частоту, з якою ядро надсилає переривання профілювання до кожного з процесорів. За допомогою цього параметра ви можете встановити частоту, як коефіцієнт частоти годинника системи, у Гц. У Linux 2.6.16 відкинуто підтримку коефіцієнта у більшості систем. Цей параметр також скидає буфер профілювання. Його використання потребує привілеїв надкористувача.

-p, --profile файл-профілювання
    Вказати інший буфер профілювання, типовим є /proc/profile. Використання іншого профілю є корисним, якщо ви хочете «заморозити» профілювання ядра у певний момент часу і прочитати його пізніше. Файл /proc/profile може бути скопійовано за допомогою cat(1) або cp(1). Підтримки стиснених буферів профілювання, подібних до передбачених у readprofile-1.1, не передбачено, оскільки програмі потрібно буде наперед знати розмір буфера.

-r, --reset
    Reset the profiling buffer. This can only be invoked by root, because /proc/profile is readable by everybody but writable only by the superuser.

-s, --counters
    Вивести значення окремих лічильників у функціях.

-v, --verbose
    Докладний режим. Виведені дані буде упорядковано за чотирма стовпчиками і доповнено пробілами. У першому стовпчику буде показано адресу функції ядра в оперативній пам’яті, у другому - назву функції, у третьому - кількість тактів годинника, а в останньому - нормалізоване навантаження.

-h, --help
    Вивести текст довідки і завершити роботу.

-V, --version
    Показати дані щодо версії і завершити роботу.

ФАЙЛИ

/proc/profile
    Двійковий знімок буфера профілювання.

/usr/src/linux/System.map
    Таблиця символів для ядра.

/usr/src/linux/*
    Програма, профілювання якої виконується :-)

ВАДИ

readprofile працює лише з ядром 1.3.x та новішими ядрами, оскільки /proc/profile було змінено десь між версіями 1.2 та 1.3.

Ця програма працює лише з ядрами ELF. Зміна для ядер a.out є тривіальною, її може без проблем виконати користувач a.out.

Щоб увімкнути профілювання, ядро має бути перезавантажено, оскільки не буде доступним модуль профілювання, а зібрати його не просто. Для вмикання профілювання ви можете вказати profile=2 (або інше число) у рядку команди ядра. Вказане вами число має бути степенем двійки, який буде використано як крок профілювання.

Профілювання вимкнено, якщо заборонено переривання. Це означає, що відбудеться багато тактів профілювання, коли переривання буде повторно увімкнено. Остерігайтеся помилкових даних.

ПРИКЛАД

Навігація буфером профілювання, який упорядковано за тактами годинника:

       readprofile | sort -nr | less

Вивести 20 найбільш завантажуваних процедур:

       readprofile | sort -nr +2 | head -20

Вивести лише профіль файлової системи:

       readprofile | grep _ext2

Шукати в усіх даних ядра із адресами в оперативній пам’яті:

       readprofile -av | less

Навігація «замороженим» буфером профілювання для ядра, відмінного від поточного:

       readprofile -p ~/profile.freeze -m /zImage.map.gz

Надіслати запит щодо профілювання при 2кГц на процесор і скинути вміст буфера профілювання:

       readprofile -M 20

ЯК НАДІСЛАТИ ЗВІТ ПРО ВАДИ

Для звітування щодо вад скористайтеся

ДОСТУП ДО ПРОГРАМИ

Програма readprofile є частиною пакунка util-linux, який можна отримати з