给国产操作系统换个芯——中标麒麟操作系统更新实时内核

测试环境

Linuxlocalhost.localdomain 3.18.48-rt54 #1 SMP PREEMPT RT Sat Apr 2910:28:30 CST 2017 x86_64 x86_64 x86_64 GNU/Linux


Thinkpad x200

CPU: Core2 [email protected],双核

内存4GB



为中标麒麟系统更新实时内核,也就是在3.18..48内核版本上打上对应的PREEMPT_RT补丁,在最后一步make install时,系统提示两个错误:


Error! Bad returnstatus for module build on kernel: 3.18.48-rt54 (x86_64)

Consult/var/lib/dkms/eveusb/1.0.0/build/make.log for more information.

Error! Bad returnstatus for module build on kernel: 3.18.48-rt54 (x86_64)

Consult/var/lib/dkms/vboxhost/4.3.12/build/make.log for more information.


打开log文件,发现是这样的错误:

错误:未知的类型名‘wait_queue_head_t

错误:宏“alloc_netdev”需要4个参数,但只给出了3

vboxNetAdpNetDevInit);


这两个报错都是出在var/lib/dkms/中两个目录,不知道如何解决。


重启之后,发现启动项中已经有了新内核的启动选项,使用新内核,进行测试,效果还不错:

sudo cyclictest -p 80 -t5 -n

测试结果:

T: 0 ( 4150) P:80I:1000 C: 287123 Min: 5 Act: 14 Avg: 13 Max: 722

T: 1 ( 4151) P:80I:1500 C: 191415 Min: 5 Act: 12 Avg: 13 Max: 731

T: 2 ( 4152) P:80I:2000 C: 143561 Min: 4 Act: 12 Avg: 12 Max: 726

T: 3 ( 4153) P:80I:2500 C: 114849 Min: 5 Act: 12 Avg: 12 Max: 711

T: 4 ( 4154) P:80I:3000 C: 95707 Min: 5 Act: 13 Avg: 12 Max: 723

延迟基本在700多左右,这个控制相当不错了。


另一个测试,测试三次:

sudo ./cyclictest -t1 -p 80 -n -i 10000 -l 10000

T: 0 ( 5017) P:80I:10000 C: 10000 Min: 6 Act: 10 Avg: 18 Max: 537

T: 0 ( 5085) P:80I:10000 C: 10000 Min: 7 Act: 14 Avg: 18 Max: 597

T: 0 ( 5106) P:80I:10000 C: 10000 Min: 7 Act: 15 Avg: 18 Max: 668

最大延迟为668us

在测试时,有留言网页、打开窗口、玩小游戏等等,插拔u盘,干扰项很多,这个成绩也是相当好。


而在标准内核下,第一个测试结果为:

T: 0 ( 2949) P:80I:1000 C: 67295 Min: 4 Act: 9 Avg: 15 Max: 9726

T: 1 ( 2950) P:80I:1500 C: 44880 Min: 4 Act: 8 Avg: 16 Max: 8739

T: 2 ( 2951) P:80I:2000 C: 33671 Min: 4 Act: 23 Avg: 18 Max: 3995

T: 3 ( 2952) P:80I:2500 C: 26939 Min: 4 Act: 26 Avg: 16 Max: 3513

T: 4 ( 2953) P:80I:3000 C: 22447 Min: 4 Act: 10 Avg: 17 Max: 8745


无论是延迟范围还是延迟稳定性上,实时内核要远远好与标准内核。

做一个假设:中标麒麟毕竟是一个通用桌面系统,桌面环境的复杂度很高,对内核任务调度是有影响的。如果使用非ui环境的linux,实时内核性能会更加优秀。


之前在virtaulbox中测试,实时内核和标准内核没有明显区别,估计在虚拟机层级的性能损失很大,所以测不出好结果。






你可能感兴趣的:(Linux)