2016-03-14 14 views
1

У меня есть приложение, которое я хочу отслеживать с помощью perf stat при работе внутри виртуальной машины kvm. После Googling я обнаружил, что perf kvm stat может это сделать. Однако есть ошибка, выполнив команду:Как можно контролировать конкретное приложение с помощью функции perf внутри kvm?

sudo perf kvm stat record -p appPID 

, что приводит к помощи представления ...

usage: perf kvm stat record [<options>] 

-p, --pid <pid>  record events on existing process id 
-t, --tid <tid>  record events on existing thread id 
-r, --realtime <n> collect data with this RT SCHED_FIFO priority 
    --no-buffering collect data without buffering 
-a, --all-cpus  system-wide collection from all CPUs 
-C, --cpu <cpu>  list of cpus to monitor 
-c, --count <n>  event period to sample 
-o, --output <file> output file name 
-i, --no-inherit  child tasks do not inherit counters 
-m, --mmap-pages <pages[,pages]> 
         number of mmap data pages and AUX area tracing mmap pages 
-v, --verbose   be more verbose (show counter open errors, etc) 
-q, --quiet   don't print any message 

знает любой, что это проблема?

+0

У вас синтаксис неправильный. Я не знаю, где вы нашли часть 'kvm', но общий синтаксис:' perf stat record -p appPID' – Jakuje

+0

! Мое ​​приложение находится в гостях, ваш комментарий будет записывать приложение, которое находится на хосте. – user1173470

ответ

1

Использовать kvm с vPMU (виртуализация счетчиков PMU) - https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Tuning_and_Optimization_Guide/sect-Virtualization_Tuning_Optimization_Guide-Monitoring_Tools-vPMU.html "2.2. ВИРТУАЛЬНЫЙ МОНИТОРИНГ ПРОИЗВОДИТЕЛЬНОСТИ (VPMU)"). Затем запустите perf record -p $pid и perf stat -p $pid внутри гостя.

Хост-система не имеет знаний (таблиц) гостевых процессов (они управляются гостевым ядром, которое может быть не Linux, или другой версией Linux с несовместимым табличным форматом), поэтому ядро ​​хоста не может профилировать определенного гостя обработать. Он может только профилировать весь гость (и есть perf kvm command - https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Tuning_and_Optimization_Guide/chap-Virtualization_Tuning_Optimization_Guide-Monitoring_Tools.html#sect-Virtualization_Tuning_Optimization_Guide-Monitoring_Tools-perf_kvm)

+0

Эй, это хороший ответ, я ищу, есть ли способ контролировать kvm-события гостевого процесса (например, kvm: kvm_exit) на хосте, к сожалению, нет способа. – buweilv