【问题标题】:How to measure the cache miss of the process in virtual machine?如何测量虚拟机中进程的缓存未命中?
【发布时间】:2020-04-24 15:20:16
【问题描述】:

我曾经使用perf_event_open() 测量某个进程的缓存未命中。 现在我需要以类似的方式测量虚拟机中进程的缓存未命中。 但是perf_event_open() 只将虚拟机视为一个进程。 看来perf kvm 可以做到。但是我可以使用代码来做到这一点吗?

【问题讨论】:

    标签: virtual-machine virtualization kvm cpu-cache perf


    【解决方案1】:

    不,如果您在主机上运行 perf_event_open() 系统调用,则无法测量在虚拟机中运行的进程的缓存未命中。

    主机和来宾(即 VM)不共享内​​核,并且您无法从主机获取在 VM 内运行的进程的性能特征。您在主机上运行的任何perf kvm 事件只能衡量整个虚拟机的性能特征,而不是特别衡量其中运行的任何进程。更多详情here.

    您应该直接在来宾内部运行perf。您可以通过程序手动使用perf_event_open() 系统调用并仅在VM 内运行它。当然,这可能需要您为来宾启用VPMU,并且如果您的主机CPU 支持PMU 计数器的虚拟化,请使用cpu=host 运行VM。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2014-08-17
      相关资源
      最近更新 更多