Это команда perf-trace, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
perf-trace - инструмент, вдохновленный strace
СИНТАКСИС
перфорация прослеживать
перфорация прослеживать запись
ОПИСАНИЕ
Эта команда покажет события, связанные с целью, первоначально системные вызовы, но
другие системные события, такие как сбои страниц, события времени жизни задачи, события планирования и т. д.
Это инструмент в режиме реального времени в дополнение к работе с файлами perf.data, как и другие perf.
инструменты. Файлы могут быть созданы с помощью перфорация запись команда, но сеанс должен
включить события raw_syscalls (-e raw_syscalls: *). В качестве альтернативы, перфорация прослеживать запись может
использоваться как ярлык для автоматического включения событий raw_syscalls при записи событий
в файл.
Следующие параметры применяются к трассировке перфорации; параметры для выполнения записи трассировки находятся в
страница руководства по perf record.
ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
-а, --все-процессор
Общесистемный сбор со всех процессоров.
-е, --выражение
Список отображаемых системных вызовов, в настоящее время только имена системных вызовов. С префиксом! показывает все
системные вызовы, кроме указанных. Возможно, вам придется сбежать от него.
-o, --output =
Имя выходного файла.
-p, --pid =
Записывать события по существующему идентификатору процесса (список, разделенный запятыми).
-t, --tid =
Записывать события для существующего идентификатора потока (список, разделенный запятыми).
-u, --uid =
Записывать события в потоках, принадлежащих uid. Имя или номер.
--filter-pids =
Отфильтровать события для этих pid и для прослеживать сам (список, разделенный запятыми).
-v, --verbose =
Уровень детализации.
- не наследовать
Дочерние задачи не наследуют счетчики.
-m, --mmap-pages =
Количество страниц данных mmap (должно быть степенью двойки) или спецификация размера с добавлением
единичный символ - B / K / M / G. Размер округляется до степени двойки в ближайших страницах.
значения.
-С, --процессор
Собирайте образцы только из списка предоставленных процессоров. Несколько процессоров могут быть предоставлены как
Список без пробелов, разделенных запятыми: 0,1. Диапазоны процессоров указаны с помощью -: 0-2. В
поточный режим с включенным режимом наследования (по умолчанию), события регистрируются только тогда, когда
поток выполняется на назначенных ЦП. По умолчанию отслеживаются все процессоры.
--duration: показывать только события, продолжительность которых превышает NM мс.
--sched: подсчитать время выполнения потока и предоставить сводку в конце сеанса.
-i --input Обрабатывать события из заданного файла данных производительности.
-T --time Печатать полную временную метку, а не время относительно первого образца.
--комм
Показывать COMM процесса рядом с его идентификатором, по умолчанию отключено с помощью --no-comm.
-s, --сводка
Показывать только сводку системных вызовов по потокам с минимальным, максимальным и средним временем (в мс)
и относительное стандартное отклонение.
-S, --with-резюме
Показать все системные вызовы, за которыми следует сводка по потокам с минимальным, максимальным и средним временем (в
мс) и относительное стандартное отклонение.
--tool_stats
Показать статистику инструмента, такую как количество раз, когда fd → pathname было обнаружено при подключении
откройте системный вызов return + vfs_getname или через чтение / proc / pid / fd и т. д.
-F = [все | min | maj], --pf = [все | min | maj]
Отслеживайте ошибки страниц. При желании вы можете указать, хотите ли вы незначительное, основное или все
pagefaults. Значение по умолчанию - maj.
--системные вызовы
Отслеживайте системные вызовы. Эта опция включена по умолчанию.
--мероприятие
Следите за другими событиями, см. перфорация список для полного списка.
--proc-карта-тайм-аут
При обработке уже существующих потоков / proc / XXX / mmap это может занять много времени, потому что
файл может быть огромным. В таких случаях требуется тайм-аут. Эта опция устанавливает время
вне предела. Значение по умолчанию - 500 мс.
СТРАНИЦЫ
При трассировке ошибок страниц формат трассировки следующий:
вина [ + ] ⇒[электронная почта защищена][1]> (
уровень>).
· Min / maj указывает, является ли неисправность незначительной или серьезной;
· Ip.symbol показывает символ указателя инструкции (код, вызвавший ошибку); если
нет доступных отладочных символов, perf trace будет печатать необработанный IP-адрес;
· Addr.dso показывает DSO для ошибочного адреса;
· Тип карты либо d для неисполняемых карт или x для исполняемых карт;
· Уровень адреса либо k для ядра dso или . для пользователя dso.
Для разрешения символов вам может потребоваться установить символы отладки.
Имейте в виду, что продолжительность в настоящее время всегда равна 0 и не отражает фактическое время, в которое она была отправлена.
принял за свою вину!
Если указан --verbose, perf trace пытается распечатать всю доступную информацию для обоих IP-адресов.
и адрес неисправности в виде dso @ символ[2] + смещение.
ПРИМЕРЫ
Отслеживайте только основные ошибки страниц:
$ perf трассировка --no-syscalls -F
Отслеживайте системные вызовы, основные и второстепенные ошибки страниц:
$ perf trace -F все
1416.547 (0.000 мс): python / 20235 majfault [CRYPTO_push_info_ + 0x0] => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0@ 0x61be0 (х.)
Как видите, в процессе Python произошел серьезный сбой страницы, начиная с
CRYPTO_push_info_ процедура, которая неисправна где-то в libcrypto.so.
Используйте perf-trace онлайн с помощью сервисов onworks.net