2016-03-14 1 views
1

J'ai une application que je veux surveiller via perf stat lors de l'exécution dans une machine virtuelle kvm. Après Google, j'ai trouvé que perf kvm stat peut le faire. Cependant, il y a une erreur en exécutant la commande:Comment une application spécifique peut-elle être surveillée par perf à l'intérieur du kvm?

sudo perf kvm stat record -p appPID 

qui se traduit par une représentation d'aide ...

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 

Est-ce que quelqu'un sait quel est le problème?

+0

Vous avez la syntaxe faux. Je n'ai aucune idée où vous avez trouvé la partie 'kvm', mais la syntaxe générale est' perf stat record -p appPID' – Jakuje

+0

! Mon application est dans un invité, votre commentaire va enregistrer l'application qui est dans l'hôte. – user1173470

Répondre

1

Utiliser kvm avec vPMU (virtualisation de compteurs 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 UNITÉ DE SURVEILLANCE DE PERFORMANCE VIRTUELLE (VPMU)"). Ensuite, exécutez perf record -p $pid et perf stat -p $pid à l'intérieur de l'invité.

Le système hôte n'a aucune connaissance (tables) des processus invités (ils sont gérés par le noyau invité, qui peut être non Linux, ou une version différente de linux avec un format de table incompatible). processus. Il ne peut que profiler l'invité entier (et il ya perf kvm commande - 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

Hey, c'est une bonne réponse, je cherche s'il existe un moyen de surveiller les événements kvm du processus invité (par exemple, kvm: kvm_exit) sur l'hôte, Malheureusement, il n'y a aucun moyen. – buweilv