【问题标题】:Linux perf events profiling in Google Compute Engine not workingGoogle Compute Engine 中的 Linux 性能事件分析不起作用
【发布时间】:2017-03-04 00:00:51
【问题描述】:

我是使用 Google Compute Engine 的新手。我想使用 Linux perf 工具对我的应用程序进行一些各种性能事件测量并最终进行示例分析。我已经在我的 Ubuntu 16.04 LTS VM 上安装了 linux perf 工具。然而,即使是像周期这样的基本事件也会显示为“不支持”。我猜测底层 KVM 管理程序没有启用虚拟 PMU 支持,尽管我相信 KVM 确实通过非默认标志设置支持这一点。有什么办法可以让它工作吗?

# perf stat -e cycles -a sleep 10

Performance counter stats for 'system wide':

<not supported>      cycles                   

  10.000598339 seconds time elapsed

【问题讨论】:

    标签: profiling kvm perf code-profiling


    【解决方案1】:

    Linux perf 工具默认尝试使用硬件性能监控计数器。当您的操作系统被虚拟化时,您无法直接访问所有计数器;如果已配置,一些虚拟化解决方案可能允许访问一些基本计数器。

    在您的情况下,GCE 虚拟化似乎没有提供这样的访问权限。 (请求您的 GCE 支持?如果它在您的 VM 之外被禁用,您无法更改此设置。)

    您可以将 perf 与一些软件事件一起使用,例如 -e task-clock 来获取基本分析。检查perf stat 输出以获取支持的事件,检查perf list 以获取软件事件。

    perf stat -e task-clock ...
    perf record -e task-clock ...
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 2021-05-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多