我只想了解有关虚拟环境的linux“perf”的信息。我试图让perf stat -e循环“我的进程”,所以当我在我的VM(运行在Vmware5.1之上)上运行此命令时,我得到的消息就像..
/不支持>循环
10.498901015 seconds time elapsed
我可以理解,VMware hypervisor可能存在权限问题或配置错误,有人可以指出这些吗?另外,我已经阅读了内核标志“PERF_COUNT_HW_REF_CPU_CYCLES”,我应该如何检查我的内核是否启用了此标志?这有什么命令吗?
答案 0 :(得分:1)
确保将perf编译到VM的内核中并通过sysctl kernel.perf_event_paranoid禁用偏执模式,即:
# sysctl kernel.perf_event_paranoid=0
答案 1 :(得分:0)
ESXi不限制来宾VM的内核权限。由于内核不知道底层虚拟机管理程序,因此我们不限制您可以从内核中获取的统计信息。
无论出现什么问题,它都在您的客户实例中。
答案 2 :(得分:0)
我在VM上运行以下命令(不是运行linux的本地harware机器),因此我们必须确保硬件PMC对VM的可见性..然后只有计数器才能由客户操作系统读取。
ESXi5.1或更高版本上有vPMC选项。一旦我们为VM启用了这些hyprevisor选项,guest就可以从底层HW架构中读取相应的值。有关详细信息chk here。