"perf" инструменты управления альтернативной производительностью, которые могут работать на Google Cloud Platform - PullRequest
0 голосов
/ 02 апреля 2020

Я пытался использовать команду "perf" на моей виртуальной машине Ubuntu, размещенной на GCP. Но когда я запускаю:

sudo perf stat -e task-clock,cycles,instructions,cache-references,cache-misses  ./AppName

Вывод:

    Performance counter stats for './AppName':
        490.299513      task-clock (msec)         #    0.081 CPUs utilized          
   <not supported>      cycles                                                      
   <not supported>      instructions                                                
   <not supported>      cache-references                                            
   <not supported>      cache-misses                                                
       6.036963754 seconds time elapsed

За исключением часов задачи все остальные отображаются как "не поддерживаемые". Я хочу кеш-ссылки и кеш-пропуски данных. Так есть ли альтернатива "перф"?

1 Ответ

0 голосов
/ 02 апреля 2020

Я воспроизвел тот же сценарий в своем проекте для Ubuntu, используя для этого другой тип компьютеров (N1, N2) и вывод, который вы указали:

root@perf-test-ubuntu: ~ # perf stat -e задача-часы, циклы, инструкции, ссылки на кэш, ошибки кеша ^ C Статистика счетчика производительности для «всей системы»:

  44450.342564      task-clock (msec)         #    1.000 CPUs utilized          
<not supported>      cycles                                                      
<not supported>      instructions                                                
<not supported>      cache-references                                            
<not supported>      cache-misses                                                

  44.470234233 seconds time elapsed

Я нашел несколько полезных ссылок [1] ​​[2], это Похоже, Linux perf инструмент по умолчанию пытается использовать аппаратные счетчики мониторинга производительности. Когда ваша ОС виртуализирована, у вас нет прямого доступа ко всем счетчикам; несколько решений виртуализации могут разрешать доступ к некоторым счетчикам basi c, если они настроены. [1]

Данные, которые вам нужны, находятся в аппаратных счетчиках мониторинга производительности. Как правило, они НЕ эмулируются средами виртуальных машин, потому что они являются накладными и, как правило, бессмысленными, учитывая, что базовая статистика кэширования поддерживается для каждого ядра / пакета, а рабочую нагрузку можно запланировать для выполнения на нескольких ядрах, каждое из которых имеет собственный уровень оборудования. статистика. [2]

Надеюсь, эта информация будет полезна для вас.

[1] - Linux Профилирование событий в Google Compute Engine не работает

[2] - https://www.researchgate.net/post/Why_doesnt_perf_report_cache-refernces_cache-misses

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...