有没有办法使用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)
#
答案 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
的系统范围模式下工作正常