滴血的CPU漏洞

  如果要评选2018年IT重大事件,Inte CPU漏洞绝对可以当选。不同于以往的CIH、熊猫烧香等限制在某一个OS平台的事件,这次所有的X86都中招了。

  其中受影响最大的应该是公有云服务商。元旦后春节前本来应该是各IT厂商的“淡季”,但收到Intel CPU漏洞补丁的影响,各公有云厂商却不得不马不停蹄的对平台进行修复,堵住该漏洞。

  但各家公有云厂商的修复策略不一样,除了都会对底层虚拟化平台层进行修复外,对于客户的VM,每个公有云厂商要求不一样:

Azure:

明确指出在VM层无需更新。

AWS:

明确要求试用VM的地方都要进行OS层修复。

Ali:

如同AWS,Ali也要求客户升级VM的OS进行修复。

  而很多用户在升级后都发现了性能下降,下面,笔者就对三家公有云进行升级前后的VM性能测试,验证cpu补丁的影响。

测试方案:

虚机平台:

  三家公有云在国内提供了各种不同用途的VM系列,为了测试结果的一致性,选择4vcpu的常规用途机型,配置如下:

公有云厂商 Azure AWS Ali
机型 D3v2 m4.xlarge g5.xlarge
配置 4vCPU 14GB RAM 4vCPU 16GB RAM 4vCPU 16GB RAM

测试软件:

  UnixBench 5.1.3

测试环境:

  选择去年的Linux(CentOS)镜像生成虚机,采用UnixBench测试,然后升级系统,再次测试,比较前后两次得分。

测试过程:

##Azure:

  Azure提供的CentOS由OpenLogic提供,基本上保持了原汁原味,其中7.4版本分别提供2017年12月7日的发行版和2018年4月17日发行版。根据测试需求试用2017年的发行版镜像创建虚机:

  ssh登录后检查kernel:

  检查OS的内核编译时间

  可见是去年的,还没有打cpu漏洞补丁。
  下载并编译运行UnixBench:

  默认情况下,UnixBench将分别测试单核和多核(此处为4core)的得分:

  执行sudo yum updata升级系统,并重启后检查kernel版本:

  检查kernel编译时间已经是2018年:

  再次运行UnixBench结果如下:

  可以看到,kernel补丁前后,无论是单核还是多核,得分都显著降低。

##AWS:
  在国际版的AWS,CentOS已进驻MarketPlace,而在国内,AWS还没有“官方版”的CentOS,而AWS自身提供的Amazon Linux也是基于CentOS相同的源代码编译的,所以选择Amazon Linux作为测试环境。
  同样选择去年版本的Amazon Linux:

  创建后检查,可以看到是AWS自己编译的kernel:

  同样编译运行UnixBench,结果如下:

  执行yum update后检查kernel已升级:

  再次运行UnixBench,结果如下:

##Ali:
  Ali在创建实例时直接提供了各版本的CentOS:

  在此我们选择7.4版,创建后进入系统查看kernel版本:

  对比CentOS的库,可以看到是去年未打补丁的kernel:

  运行Unixbench,结果如下:

  执行sudo yum updata升级系统,并重启后检查kernel版本

  与Azure一样,已是2018年后的版本,打上了CPU漏洞补丁。
  运行Unixbench结果:

#测试结果:
  Azure、AWS、Ali三家公有云测试结果如下:

  纵向对比,在Linux的CPU漏洞补丁前,各云厂家的得分都在3000以上;而在补丁后,CPU性能急剧下降。说明漏洞补丁对CPU性能影响还是很大。
  横向对比,补丁前,Azure得分一枝独秀,大幅领先AWS和Ali;补丁后,由于AWS采用了自己编译的kernel,应该做了一些专门优化,性能和Azure达到持平;但不知这种内核优化在具体使用时是否对应用有一定兼容性影响;而Ali无论是在补丁前还是补丁后,性能都大幅低于Azure和AWS,不知是否由于资源复用引起?

测试总结:

  通过本次测试,可以看出:

  1. CPU的漏洞补丁对CPU性能有严重影响,将导致CPU性能下降20%甚至更高
  2. 如果用户的业务是CPU敏感性,首选Azure,并使用去年的OS版本(可能需要命令行方式去选择对应镜像),可以充分发挥CPU性能(Azure从底层修补了漏洞,Guest OS层不受漏洞影响)
  3. 如果用户业务涉及一些兼容性问题,需要今年的Linux版本,可以选择Azure或AWS;但AWS的内核不是公版kernel,可能存在未知影响;另外AWS的AMI(镜像)编号比较乱,希望能尽快标准化并且在国内引入标准CentOS
  4. Ali虽然由于各种原因,目前在国内公有云市场份额占据了绝对优势份额,但是技术和两大国际国有云厂商相比,还是存在较大差异,希望能多多在技术方面进行投入和改进,而非只是注重市场宣传