加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 测量内核空间开销的准确方法

发布时间:2020-12-13 22:51:33 所属栏目:Linux 来源:网络整理
导读:我最近为 Linux实现了一个挂钩系统调用的安全机制.现在我必须衡量它造成的开销.该项目需要比较具有和不具有该机制的典型Linux应用程序的执行时间.通过典型的Linux应用程序我假设前. gzipping 1G文件,执行’find /’,grepping文件.主要目标是显示不同类型任务
我最近为 Linux实现了一个挂钩系统调用的安全机制.现在我必须衡量它造成的开销.该项目需要比较具有和不具有该机制的典型Linux应用程序的执行时间.通过典型的Linux应用程序我假设前. gzipping 1G文件,执行’find /’,grepping文件.主要目标是显示不同类型任务的开销:CPU绑定,I / O绑定等.

问题是:如何组织测试以使其可靠?第一个重要的事实是我的机制仅在内核空间中起作用,因此它与比较systime是相关的.我可以使用’time’命令,但它是测量systime最准确的方法吗?另一个想法是在长循环中运行这些应用程序以最小化错误.然后循环应该在内部或外部时间命令?如果他们在外面,我会得到很多结果 – 我应该选择最小值,最大值,中值,平均值吗?

谢谢你的任何建议.

解决方法

我想你想要更多地测量一个典型的应用程序有效载荷(正如Ninjajl的评论所暗示的,内核的编译可能是一个很好的有效载荷).您可能不希望测量每个系统调用本身内部的开销,甚至不需要测量内核整体内部的开销.

这样做的原因是大多数应用程序在用户空间中花费的时间和资源比在kernel-land(即系统调用)中花费的时间和资源要多得多,因此系统调用内部的开销是“二阶”效应,并且可能无关紧要.当然,也有可能的例外.

也许phoronix test suite可能是相关的.

你可能感兴趣的是oprofile

另见this answer和this question

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读