如何分析在KVM来宾中运行的应用程序

时间:2015-04-24 12:08:30

标签: profiling virtualization kvm perf

有没有办法使用perf_events等工具分析在KVM客户机内运行的应用程序?

我已尝试使用

执行此操作
perf kvm --guestkallsyms=.. --guestmodules=.. --guest record -a

但报告中的信息非常无用:

# ========
#
# Samples: 627  of event 'cache-misses'
# Event count (approx.): 295421
#
# Overhead  Command     Shared Object                  Symbol
# ........  .......  ................  ......................
#
    73.18%   :15661  [x_tables]        [g] 0xffffffff8176bc80
    26.82%   :15661  [unknown]         [u] 0x00000000004004fe


#
# (For a higher level overview, try: perf report --sort comm,dso)
#

3 个答案:

答案 0 :(得分:2)

没有

perf工具在主机中运行,无法获取有关guest虚拟机中应用程序的信息。我认为样本到来宾内核空间或来宾用户空间的归属是基于采样时的cpu模式(而不是关于客户正在做什么的更高级别的信息)。

您可以直接在来宾中运行perf来获取一些分析信息。使用perf list查看选项(它们可能都在'软件'类别中)。

答案 1 :(得分:0)

是的,你可能可以。主人可以看到客人。您可以使用原始硬件事件来执行此操作(只需检查系统上可用的事件编号)。 对我来说,这就是一个例子:

sudo perf kvm stat -I 1000 -e r1a8 -a

(请确保您在一段时间后关闭KVM计算机并监视客户端并查看零...)

答案 2 :(得分:-1)

是,

怎么样?
sudo perf kvm stat record  -p appPID

它应该在perf kvm的帮助下工作,但事实并非如此!它在-a

的系统范围模式下工作正常