未打补丁的内核版本为 Linux 4.14.8
已打补丁的内核版本为 Linux 4.14.11。
这是未更新前的系统版本号。测试的方法是,用gcc7.1编译器编译相同的php 7.2.1源码包,用dstat程序读取编译时间和IO负载等信息,统一编译如下内容:
gcc编译器采用的优化参数为:
CFLAGS="-O2 -mtune=native -march=native"
CXXFLAGS="-O2 -mtune=native -march=native"
意思是根据CPU性能和指令集自动编译优化。
下面开始测试,首先在没有更新的旧版本内核启动系统,使用下列命令测试,并记录到csv文件中:
dstat --output testold.csv -rdt 5(每5s记录当前系统的io负载,磁盘IO计数,还有系统时间)输出到testold.csv文件中。
编译完成,不需要清理,重启用新版本Linux 4.14.11内核启动,重复如下测试,建议分别用两套纯净源码测试,以防干扰。注意查看一下更新后的内核版本,保持编译优化参数和编译模块内容一致:
下面进入第二次编译过程,可以先记录一下时间戳:
下面打开记录的csv文件,分析一下结果:
首先是老版本未打补丁的内核,开始编译的时间戳是08-01 01:11:28,编译完成的时间戳是
08-01 01:15:53 ,也就是说编译用时 4min25s,通过excel等应用,将系统IO和磁盘IO数据制表,得到如下图形:
下面是新版本已经打补丁的内核(4.14.11),开始编译的时间戳 08-01 01:32:00 完成编译的时间戳是08-01 01:36:55 ,用时4min55s,编译用时这里多了约30s,当然有5s以内误差,因为是手动按ctrl+C停止记录,系统IO和磁盘IO数据制表:
原始的数据文件放到了网盘中,有需要的可以自行下载:
https://pan.baidu.com/s/1hsyAKK0
注意ods是用LibreOffice Calc创建的文件,因为Linux下没有Office
testold指旧内核,testnew指新内核。
目前明显可见的性能差异是编译用时多了约30s,因为属于重度IO类应用,而且是make -j4,可让cpu满负载,是不是所谓性能损失不知道关于图表各位可以自行分析一下。
文章评论