处理器内核的增加,必将加剧对服务器资源的争夺,包括了内存容量、内存带宽、网络带宽以及存储I/O带宽等等。现在去衡量一个采用多核处理器的服务器的基本能力时,一个基本的指标就是每核所分配的到资源,如果资源不够,每个核心的性能也将不能充分的发挥。而且,随着服务器虚拟化的不断普及,在单台服务器上承载多个应用虚拟机已经趋于常态,而这种显而易见的多任务的压力也就分摊在相应的I/O设备上了。
为此,厂商在不断的给内存增加通道数量,提高内存的传输率,网络I/O也从Mbps向10Gbps级迈进,这些基本都是可以通过电子电路设计的改进来实现,因此慢慢的,人们就感觉到最终的性能瓶颈开始向存储集中,即传统的硬盘系统。
传统硬盘的优势与劣势
硬盘(全称硬盘驱动器,HDD--Hard Disk Drive)已经有了很悠久的历史了,最早可以追溯到50多年前,所以发展至今已经千锤百炼,在技术上已经相当的成熟,伴随着垂直磁记录等技术的普及与发展,硬盘现在容量已经发展到TB的级别,每GB的成本不过几毛钱,这在当前的服务器系统中的优势无可比拟,但是由于硬盘的原理性限制,它的劣势在CPU性能突飞猛进的今天也就越发明显。
我们知道硬盘的存储是基于旋转的磁盘,在工作时有一个磁头臂带着磁头在旋转的磁盘上做径向的寻址,然后再读写数据,这里就存在着较大的访问延迟。由于磁头在开始读写数据前要先找到相应的磁道,再找到相应的扇区,所以其平均寻址时间由平均寻道时间+平均潜伏期得来,以当前最高性能的15000RPM(每分钟15000转)的传统硬盘产品为例,其平均寻道时间为3.2ms,平均潜伏期(盘片旋转半圈的时间)为 2ms,两者相加为5.2ms,这就意味着它对寻址命令的平均响应能力是192IOPS,IOPS就是指硬盘在每秒里可执行的I/O操作数,由于必须先找到地址才能进行I/O操作,所以IOPS也基本可以理解为对寻址命令的响应能力,这对于CPU的事务处理非常关键,尤其是非常常见的随机访问操作(如数据库)。
虽然现在有较为成熟的命令排队技术来优化硬盘的寻址操作,但理论的上它的实际性能很难超过单一的平均潜伏期的水平,比如平均潜伏期为2ms,那么IOPS的最大值就在500左右,这就是传统硬盘传统硬盘的最理想的水平,而实际测试成绩一般在200至300 之间。在传统的单核服务器上,这样的IOPS表现似乎问题不大,但如果是在多路多核的系统上,尤其是多虚拟机环境下,这无疑将成为最明显的性能瓶颈。可是,基于机械的硬盘在这方面是力不从心的,因为转速很难再提升,所以它的响应速度最终就落在ms(毫秒)的级别。
另一方面,由于是在旋转的磁盘上进行数据的读写,所以其数据传输率将随磁道的位置产生变化,最外圈的磁道数据传输率最高,但越往里数据传输率越低,这从其数据传输曲线图上就能看出来,它是一个呈阶梯状的从高向低的曲线,也就是说硬盘无法做到数据传输的恒定,这也对其有效带宽造成了致命影响。
固态盘保障I/O效率
当我们了解到了传统硬盘的优势与劣势后,再结合业界的发展趋势就能较为容易的找破解服务器存储I/O瓶颈之道,那就是正在迅猛发展的,基于闪存的固态盘(SSD, Solid-State Drive)。
闪存(Flash Memory)是一种非易失性的半导体存储器(NVRAM),这里就有两个特点,第一它是非易失的,可以像硬盘那样永久的保存数据,第二它是半导体存储器,就意味着更快的访问速度。
当前主流的存储用闪存就是NAND闪存,若算上页面寄存器的数据传输时间,基本是20us(微秒)左右,理论的IOPS可达50000,是传统硬盘传统硬盘的100倍,这就是当前SSD相对于硬盘的领先水平,而如此高的响应能力再加上可通过多通道设计来成倍提高I/O带宽的能力, 使得SSD迅速成为了高性能服务器的首选。而且,SSD的数据由于是类似于内存的平行传输,不存在硬盘的外圈与内圈的问题,所以可以做到恒定保持在最高的数据传输率上。
有人可能会说,SSD的容量不够呀?的确与当前的硬盘容量上比,SSD还差不少,但上面也提到除了技术的进步外,更先进的应用理念已经让高性能服务器不再需要大规模的本地存储,它只需提供关键应用的生产工作卷即可,而大规模的数据存储可以交给外接的专用的存储系统(网络),所以对于本地的容量需求不再苛刻。
综上所述,当我们在采购高性能服务器来承载我们的关键应用或建立一个虚拟化基础架构时,不要忽视其中的瓶颈所在,否则高性能的处理性能必将会大打折扣,虚拟化的优势也无法完全释放,服务器越高端这一反差也就越明显,所以我们完全有必要关注内存SSD在高性能服务器中的重要作用。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。