首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vtune:在运行其他任务的机器上运行测量时Intel采样驱动程序的准确性

Vtune:在运行其他任务的机器上运行测量时Intel采样驱动程序的准确性
EN

Stack Overflow用户
提问于 2021-06-06 07:40:12
回答 1查看 108关注 0票数 0

我有最新的咖啡机,主要用作存储服务器。单独运行存储服务器时,每个核心(4个核心)的平均工作负载约为5-10%。

我想使用Intel抽样驱动程序在这台机器上运行工作负载的v调测量。但是,考虑到存储服务器应用程序同时运行,我怀疑测量结果是否准确。

但是,正如英特尔的文档所显示的,采样驱动程序安装在Linux内核上,那么,如果与其他应用程序同时运行,测量结果是否会不准确呢?换句话说,英特尔的抽样驱动程序到底是如何工作的?它们是否能够区分工作负载进程和系统上运行的其他进程?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-06 08:10:29

如果VTune与perf使用的Linux子系统类似,它基本上会在上下文切换上保存/恢复HW事件计数器寄存器,以及常规的注册状态。因此,像instructionsuops_retired这样的事件应该不受影响。而对其他事件的影响则是由于实际的影响,比如额外的缓存丢失。

( HW性能事件的基本机制是,每个逻辑核都有自己的可编程perf计数器,每次发生微体系结构事件时都会增加。如果溢出,则会引发一个中断,以便驱动程序收集计数。或者对于perf record类型的功能,perf或VTune会对它们进行编程,以便定期触发中断,并在此点上对保存的用户空间RIP进行示例。这会对超标量无序CPU产生一些奇怪的影响,比如“指责”等待数据的指令,而不是缓存丢失加载本身。但关键是,核心内部事件完全是每一个核心事件。uncore / L3缓存事件计数共享资源(如L3缓存),因此更容易受到系统负载的干扰。)

另一点是,如果您在CPU核心上运行某项任务,Linux将不希望在那里安排其他任务。因此,您的后台负载将倾向于避免任何核心您的测试正在运行,使它能够使用100%的单一核心,而不需要大量的上下文切换。(尽管网络/磁盘中断仍可能在该核心上处理。)

因此,是的,您应该能够相当准确地测量您的进程在运行在一个不完全空闲的系统上时实际发生了什么。这可能与在完全空闲的系统上运行会发生的情况略有不同,但可能没有太大的不同。特别是如果它是单线程的,或者您可以将其限制在比所有内核都少的范围内,那么操作系统至少还剩下一个任务来调度其他任务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67856824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档