免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3659 | 回复: 4
打印 上一主题 下一主题

【请教】如何监测内核的上下文切换时间 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-10 10:15 |只看该作者 |倒序浏览
我用的LTTng工具,不知道这个能监测上下切换时间吗?请高手指点。或者有别的什么方法可以监测的,请指教。

论坛徽章:
0
2 [报告]
发表于 2010-06-10 23:43 |只看该作者
我想到的方法是直接改内核代码,在切换的时候把时间打印出来。不过不知道LZ这个上下文切换时间是怎么定义的?每个进程跑了多久?进程切换本身要花多少时间?

论坛徽章:
0
3 [报告]
发表于 2010-06-11 10:36 |只看该作者
回复 2# accessory


    哦。我修改了内核,要监测它的实时性能是否提高了。网上查到的上下文切换时间是一个比较重要的检验实时性能的标准。找到的资料有这样一种方法,但是很笼统。不太明白。。。如下:
/*******************/
上下文切换时间可以通过两个进程间循环传递令牌的方法进行测试。创建两
个进程并在它们之间传送一个令牌,如此往返传送一定的次数。其中一个进程在
读取令牌时就会引起阻塞。另一个进程发送令牌后等待其返回时也处于阻塞状
态。其中,发送令牌带来的开销与上下文切换带来的开销相比,可以忽略不计。
整个令牌传递过程通过管道技术实现。即将一个字节的令牌通过管道来回发送。
在进程“A”将令牌写到管道后,它在读取管道时就会阻塞,直到字节被返回为
止。起初在读取管道时会发生阻塞的进程“B”在“A”写字节时会被唤醒,并
读取该字节。“B”马上将这个字节写回管道,并等待再次读取该字节。由于管
道的半双工特性,因此需要两个管道,进程“A”在通道1上写入,在通道2上
读取。进程“B”在通道1上读取,在通道2上写入。通过统计10000次的往复
令牌传递时间,得到平均上下文切换时间测试结果。
/**********************/
中断响应时间也可以作为检验实时性能的标准。如果这个监测起来容易一些,请楼主介绍一下中断响应时间的监测。。。我用的LTT工具来监测系统的。
麻烦了。。。。

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
4 [报告]
发表于 2010-06-11 10:56 |只看该作者
ftrace中有个sched_switch跟踪器

论坛徽章:
0
5 [报告]
发表于 2010-06-11 11:34 |只看该作者
回复 4# openspace


    谢谢。我看一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP