如今出现了很多基于云计算技术的各种云服务,可是如何去衡量一个云服务的好与差,并没有很清晰的标准。其实,对于云服务,一定程度上是由云计算技术的性能所决定的。说到性能,尤其是云计算的性能,受影响的因素很多。需要对整个系统进行研究,这包括了所有的硬件组件和整个软件堆栈,所有数据路径上和软硬件上所发生的事情都包括在内,因为这些都有可能影响性能,这使得性能评估变得异常复杂。当云计算性能出现问题时,也很难找到问题的症结。性能瓶颈往往是复杂的,还会以意想不到的方式互相联系,修复了一个问题可能只是把瓶颈推向了系统里的其它地方,导致系统的整体性能并没有得到期望的提升,这样实际并没有解决性能的问题,所以看待性能问题一定要有全局的视野。
云计算兴起虽然解决了数据中心里的一些问题,同时也带来了一些新的性能问题。要知道云通常基于虚拟化技术搭建,允许多个操作系统实例或者租户共享一个物理服务器,这意味着会存在资源竞争,如何将有限的资源合理分配出去,也将影响到系统性能。现在人们对云服务的要求已经不是简单的能用就行,而是要好用、要体验好,对性能要求越来越高,这种体验不是简单地某项可量化的测量指标,而是一种具有一定主观性的感受。人们通过感受来给出“好”与“坏”的评价,这个取决于应用开发人员和最终用户的性能预期,这个很难用几个测量的数据参数来衡量。下面,我们就来说一说与云计算性能相关的几个重要因素,以便对性能因素有所了解。
延时
延时是操作执行之前所花的等待时间,一次应用程序请求,一次数据库查询或者是一次文件系统操作等都是有延时的,比如对于网站,从点击链接到屏幕显示整个网页加载完成的时间,过高延时会令人沮丧,客户可能会选择到别处开展业务。延时包含有很多方面,是各种因素的累积,表1列举了部分系统的延时,这些延时累加起来就反映了整个系统的反应时间,延时就是云计算性能的最直接表现。
延时的高低与云计算性能影响是很大的,延时的数据也不是一成不变的,时刻都处于波动之中,动态跟踪可以从任意感兴趣的点测量延时,还可以提供现实延时完整的分布情况。有些云服务关注的是平均延时,而有的云服务关注突发延时,具体要看应用业务类型,侧重点是哪个方面,不管怎样延时是云计算性能的最直接体现。
iops
iops是指每秒发生的输入/输出操作的次数,是数据传输的一个度量方法,对于磁盘读写,iops就是每秒读和写次数,随机存取及循序访问时的iops代表了性能特性。循序访问是访问存储设备中相邻位置的数据,一般和较大的数据区块访问有关,常见性能特性如表2:
吞吐量
吞吐量是评价数据处理执行的速率,在数据传输方面,用字节/秒或比特/秒来表示,在某些情况下,也用每秒操作数或每秒业务数表示,吞吐量取决于上下文环境。对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载性能。吞吐量的限制是性能瓶颈的一种重要表现形式,因此,有针对性地对吞吐量设计测试,可以协助尽快定位到性能瓶颈所在位置。通过提升系统的吞吐量,达到提升云计算系统性能的目的。
使用率
使用率经常用于操作系统描述设备的使用情况,比如cpu和磁盘设备,使用率指的是就是所消耗的cpu和存储容量。对于服务所请求的资源,使用率描述在所给定的时间区间内资源的繁忙程度。使用率是基于时间的,或者基于容量的。使用率指标告诉我们系统的忙碌程度,当系统接近100%使用率,资源发生竞争时性能会有严重的下降。想象一下高速公路的收费站,使用率就相当于有多少收费站在忙于收费,使用率100%意味着你找不到一个空的收费站,必须排在别人的后面。
除了以上介绍的这些,当然还有很多性能因素。比如:响应时间,饱和度,瓶颈,工作负载和缓存等等,掌握这些性能参数也非常必要,在此不再详述。解决复杂性能问题常常需要全局性的方法,整个系统(包括自身内部和外部的交互)都可能需要被调查研究,这需要非常广泛的技能。很多时候性能问题表现也并不是问题本身,在复杂的软件中通常会有多个问题,即使最优秀的编程人员也难免会犯错,就是那些被认为拥有高性能的软件,也会有不少已知的但仍未被修复的性能问题,我们要辨别哪些问题影响到了性能,哪些无关。对于那些和性能关系不大的问题,可以放置不理。还有应该把关注点放到与云计算性能紧密相关的环节上,比如数据中心网络很多端口光模块没有识别,虽然影响到了使用,但对转发性能没有影响,这个就可以忽略,数据中心只要关心与业务性能有关的环节,将这些环节做好,结果必然是获得优异的性能。
本文转自d1net(转载)