1、测试实时操作系统使用命令cyclictest
cyclictest是rt-tests下的一个测试工具,(可通过:sudo apt-get install rt-tests 安装)一般用来测试使用内核的延迟,从而判断内核的实时性。
2、案例讲解
$ cyclictest -l100000000 -m -n -t1 -p99 -i200 -h400 -q
使用-m参数锁定内存分配,-n参数使用nanosleep而不是sleep, -t1使用一个线程,-p参数给cyclictest 赋优先级为99,-i参数指定线程间隔时间200us,结合-l参数可计算总时间 200*100000000=20000000000us=33.33m , -h 400为在最后结果中总共统计400个信息
cyclictest是rt-tests下的一个测试工具,(可通过:sudo apt-get install rt-tests 安装)一般用来测试使用内核的延迟,从而判断内核的实时性。
2、案例讲解
$ cyclictest -l100000000 -m -n -t1 -p99 -i200 -h400 -q
使用-m参数锁定内存分配,-n参数使用nanosleep而不是sleep, -t1使用一个线程,-p参数给cyclictest 赋优先级为99,-i参数指定线程间隔时间200us,结合-l参数可计算总时间 200*100000000=20000000000us=33.33m , -h 400为在最后结果中总共统计400个信息
结果如下:
000396 000000
000397 000000
000398 000000
000399 000000
#Total: 100000000
#Min Latencies: 00007
#Avg Latencies: 00009 -----平均延时 9us
#Max Latencies: 00045 ------最大延时 45us
#Histogram Overflows: 00000 ------超过399us的次数
#Histogram Overflow at cycle number:
#Thread 0:
3. $ sudo cyclictest -t 4 #测试4个线程
测试结果放到GIthub:
https://github.com/wugsh/wgs/tree/master/testdata
结果是将linux4.4内核安装实时补丁与纯净内核做了对比,根据文件名可推知测试对应的结果。
本数据还使用了作图工具:gnuplot
gnuplot的使用说明可见:https://github.com/wugsh/wgs/blob/master/gnuplot_tutorial.pdf