Scroll to navigation

READPROFILE(8) Керування системою READPROFILE(8)

НАЗВА

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

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

readprofile [options]

ВЕРСІЯ

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

ОПИС

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

ПАРАМЕТРИ

-a, --all

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

-b, --histbin

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

-i, --info

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

-m, --mapfile файл-карти

Вказати файл карти, типовим є /usr/src/linux/System.map. Вам слід вказати файл карти у рядку команди, якщо ваше поточне ядро не є останнім ядром, яке ви зібрали, або якщо ви зберігаєте ваш System.map у якомусь нестандартному місці. Якщо назва файла карти завершується на .gz, його вміст буде розпаковано на льоту.

-M, --multiplier множник

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

-p, --profile файл-профілювання

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

-r, --reset

Скинути буфер профілювання. Цю команду може бути викликано лише від імені root, оскільки читання /proc/profile може здійснювати будь-який користувач, а запис - лише надкористувач. Втім, ви можете встановити для readprofile set-user-ID 0, щоб скинути буфер без набуття додаткових прав доступу.

-s, --counters

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

-v, --verbose

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

-h, --help

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

-V, --version

Вивести дані щодо версії і завершити роботу.

ФАЙЛИ

/proc/profile

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

/usr/src/linux/System.map

Таблиця символів для ядра.

/usr/src/linux/*

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

ВАДИ

readprofile only works with a 1.3.x or newer kernel, because /proc/profile changed in the step from 1.2 to 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кГц на процесор і скинути вміст буфера профілювання:


sudo readprofile -M 20

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

Для звітування щодо вад скористайтеся системою стеження за вадами - <https://github.com/util-linux/util-linux/issues>.

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

Програма readprofile є частиною пакунка util-linux, який можна отримати з архіву ядра Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.

2024-10-01 util-linux 2.40.2