Linux Perf: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 14: Строка 14:
 
=Введение в <code>perf</code>=
 
=Введение в <code>perf</code>=
 
Для тестирования, просто что бы понимать какие данные можно получить, и как с ними работать, запускаю сбор данных на "просто сервере"
 
Для тестирования, просто что бы понимать какие данные можно получить, и как с ними работать, запускаю сбор данных на "просто сервере"
  +
==Сбор данных==
 
 
<PRE>
 
<PRE>
  +
perf record -a -F 99 -g
  +
</PRE>
   
  +
* <code>-a, --all-cpus</code> - собрать данные со всех процессоров
  +
* <code>-F, --freq=</code> - частота, лучше выбирать нечетную что бы избежать ситуации когда регулярные события с происходящие частотой равной или кратной частоте семплирования, не будут записаны.
  +
* <code>-g</code> нужна для захвата стек трейсов
  +
* Результат будет записан в файл <code>perf.data</code> (не указано, это значение по-умолчанию)
  +
==Просмотр результатов==
  +
Посмотреть полученный результат можно командой:
  +
<PRE>
  +
perf report -g fractal
 
</PRE>
 
</PRE>
  +
* Опция -g fractal нужна для того, чтобы проценты, отражающие количество сэмплов с этой функцией и показываемые perf, были относительны вызывающей функции, количество вызовов которой берется за 100%.
   
 
=11=
 
=11=

Версия 13:07, 18 марта 2024

Linux perf

Поиск проблем в ядре, пример.

Авторы

  • Основное исследование провел Денис Миргородский (email to be added!), я сделал только некоторые незначительные дополнения и оформил эту доку.

Зачем это нужно ?

Иногда хочется понять, что вообще происходит с системой, в частности мы наблюдали примерно 30-процентное проседание скорости работы хранилища (в IOPS)
после обновления Compute Node (OpenStack) с ядра 5.4 до 5.15


Введение в perf

Для тестирования, просто что бы понимать какие данные можно получить, и как с ними работать, запускаю сбор данных на "просто сервере"

Сбор данных

perf record -a -F 99 -g
  • -a, --all-cpus - собрать данные со всех процессоров
  • -F, --freq= - частота, лучше выбирать нечетную что бы избежать ситуации когда регулярные события с происходящие частотой равной или кратной частоте семплирования, не будут записаны.
  • -g нужна для захвата стек трейсов
  • Результат будет записан в файл perf.data (не указано, это значение по-умолчанию)

Просмотр результатов

Посмотреть полученный результат можно командой:

perf report -g fractal
  • Опция -g fractal нужна для того, чтобы проценты, отражающие количество сэмплов с этой функцией и показываемые perf, были относительны вызывающей функции, количество вызовов которой берется за 100%.

11

1 5 4.svg