飞凌AM335x平台实时操作系统LinuxRT性能测试

日前获知飞凌嵌入式的AM335x开发板已经移植Linux-RT实时操作系统成功,那这个操作系统的内核延迟是多少呢?性能怎么样?下面来做个简单的测试。

工具准备:OK335xD开发板 (www.forlinx.com/2.htm)

          LINUX-RT实时操作系统镜像(咨询飞凌客服)

         Cyclictest测试程序(光盘资料)

OK335xD开发板如何烧写时操作系统镜像请参考飞凌提供的手册,比较简单,就不做赘述了。

Cyclictest,看名字应该就能大致猜出来它是一种Test程序,Cyclictest是一个高精度的测试程序,是 RT-Tests 下的一个测试工具,也是RT-Tests 下使用最广泛的测试工具,一般主要用来测试使用内核的延迟,从而判断内核的实时性。

实时性通过Cyclictest测试。压力环境通过HackBench提供,它不断的进行进程间通信以及进程的创建,提高系统负载。信号可以将测试过程挂起,这种情况下延迟随挂起时间变化。针对系统延迟测试过程中,不要引入其它条件的变化,比如向终端输送信号等操作。关于其它条件对实时的影响各位可单独测试。

无压力环境下测试:

# cyclictest -m -n -p99 -i800 -l100000 -q

-m 锁定内存

-n nanosleep

-p99 实时进程优先级

-i800 休眠间隔800us (不要低于800)

-l10000 10万次循环测试,循环次数越多,需要的时间越长

 

压力环境下测试:

先运行HackBench提供压力,在运行Cyclictest。在运行HackBench后,因CPU负载过高,会出现串口以及界面反应慢的情况。压力环境仅作为一种极限测试,这个环境会对一般优先级进程的调度时间轮转变长,建议不要在压力过程中测试除RT性能以外测试。

#hackbench  -l -1 -g 15 -f 25 –P &

# cyclictest  -m -n –p80 -t1 –i800

 

Ctrl+C停止Cyclictest测试,停止测试后HackBench仍然在后台运行。

输出结果含义:

T: 0 序号为0的线程

P: 0 线程优先级为0

C: 9397 计数器。线程的时间间隔每达到一次,计数器加1

I: 1000 时间间隔为1000微秒(us)

Min: 最小延时(us)

Act: 最近一次的延时(us)

Avg:平均延时(us)

Max: 最大延时(us)

无压力下测试数据结果如下:

T: 0 (1109) P:99  I:800 C:100000  Min:  6  Act:11   Avg:10    Max: 22

压力下测试数据结果如下:

T: 0 (1866) P:99  I:800 C:3770549  Min:  9  Act:23   Avg:21    Max: 46

测试结果会发现压力测试下系统的延迟性较无压力下的延迟明显较大。后与飞凌公司的技术支持沟通,他们做过长时间的实测任务切换时间可达500μs,任务切换延迟在负载状态下最大仅100μs

 

 

猜你喜欢

转载自blog.csdn.net/u010144373/article/details/77258775