我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 指令级并行 >

阿里云比腾讯云好在哪?看完恍然大悟

归档日期:07-05       文本归类:指令级并行      文章编辑:爱尚语录

  作为公有云的资深用户,测试过多家云平台数十个实例之后,我们一直在思考两个问题:客户最需要云厂商提供的核心能力是什么?应该如何评估一家云厂商的产品技术能力?

  接下来的几篇文章中,潮云实验室将结合长期的测试数据,帮助大家选择最合适的云服务器,同时探讨几家主流云厂商的产品差异和背后的设计理念。今天,我们先从计算入手。

  很长一段时间,跑分似乎成为衡量性能的唯一标准,但是从实际体验来看,单纯依赖跑分去选择产品,是非常片面的决断。

  首先,有些跑分工具本身就有问题。比如,近期就有爆出Unixbench跑Pipe-basedContext Switching用例时,虚拟机的得分甚至超过同等级物理机的情况(目前已经有补丁修复)。

  主频:高主频肯定能带来计算性能的增长,但是高主频的CPU往往价格昂贵,另外随着主频的提升,功耗会成指数级增长,这部分运营成本(opex)当然最后也会算给客户。

  IPC:要提升IPC,可以通过提高指令执行的并行度来实现,主要有两个途径:一是提高微架构的并行度,二是采用多核架构。在微架构并行度一致的情况下,关注多核架构。采用多核架构,可以减缓由于主频提高而功耗急剧上升的坡度。如果功耗相同,毫无疑问多核CPU的性能会比单核CPU要高。

  1. 从提高主频的角度来看,对比计算性能,ge.2比S3.large.2提高了36%,但是价格却高了44%。

  稳定性:相对于前两个,稳定性很难在产品页面被参数化描述,但是却是企业场景里很重要的一点,我们来重点聊聊关于CPU稳定性的那些你还不了解的事。

  很多人有这样的疑问:为什么我购买的服务器CPU性能波动那么大?今天我们就来详细说说背后的主要原因:vCPU的绑定。

  有人会问为什么是同一个core的两个HT,而不是两个位于不同core的HT呢?这是为了独占该core的所有资源,避免其他用户的干扰。

  而不绑定的情况下,这两个vCPU会随机落到不同core的任一超线程上,往往分布在两个不同的物理core。

  绑定的时候,单个core采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU core那样,有些资源是需要共享的, 比如图中的L1指令和数据缓存,L2缓存。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU core的性能。如果CPU core不分超线%的能力的话,加了超线个vCPU的性能大概等于115%-130%的单物理CPU core能力,但是该core所有资源被用户独占,业务运行稳定。

  在不绑定时,每个vCPU往往单独分配去一个CPU core,这种情况下,大部分core内资源是和其他用户共享的,如图:

  1.服务器空闲,即另一个超线个vCPU的性能能线%单物理CPU core的能力(资源被独立占用,无争抢),且较平稳。

  2.服务器忙碌,你的vCPU会受到其他用户机的负载水平影响,双方产生资源争抢,表现为业务性能不稳定。

  显然,使用不绑定的策略虽然能带来性能上的提升,但是和云服务的稳定性和隔离性的要求背道而驰,这相当于把自己业务稳定的主动权交给了其他用户!

  判断依据如下:如果测试单vCPU性能时接近物理CPU性能,而测试双vCPU性能时,两个vCPU性能都有一定程度的下降,那么这款实例是对vCPU进行绑定的。反之,如果两个vCPU性能仍然都接近物理CPU性能,那么一定没有绑定。

  为了进一步论证,我们选取了一台腾讯云HS20专用宿主机(56核),来模仿vCPU不绑定情况下多租户“拥挤”的使用场景。

  把该物理机分成7台8核32G的虚拟机,其中一台为被测机,另外6台为干扰机。

  在不同的干扰压力下(无压力,N个进程跑super_pi压力等)的业务性能,测试结果如下(以mysql_read性能为例):

  实验显示,vCPU没有绑定情况下,被测虚拟机受同机其他虚拟机的干扰非常大。

  用前文提到的测试方法,大致测了一下主流云服务器厂商的部分实例的vCPU绑定情况,结果如下:

  可以看到,AWS和阿里云的企业级产品已经进行vCPU绑定,这些产品当然会有更好的稳定性体验。

  腾讯云、华为云的几款实例及阿里云T5,AWS T2等非企业级实例,均未进行绑定,潮云实验室后续将对这几款产品进行进一步的性能测试。

  对于企业级用户来说,优先选择vCPU绑定的实例,计算性能更稳定、可预期。

  不绑定vCPU在闲时可获得更高的性能,但隔离性差,不可预期,有一定业务风险。

  同时,我们也需要有清醒的认识,对云服务器来说性能测试和实际应用会有偏差,比如vCPU的绑定与否就会影响性能测试结果。

本文链接:http://f-taiken.net/zhilingjibingxing/286.html