虚拟盘终极教程连载[表格借鉴]_第1页
虚拟盘终极教程连载[表格借鉴]_第2页
虚拟盘终极教程连载[表格借鉴]_第3页
虚拟盘终极教程连载[表格借鉴]_第4页
虚拟盘终极教程连载[表格借鉴]_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、转载最具有权威性的虚拟盘终极教程连载 天若有情说到虚拟盘本身,相信很多的网管兄弟已经熟的不再熟了,现在的网吧,几乎每个网吧都会使用虚拟盘,但是如何用好虚拟盘,把虚拟盘真正的实力发挥出来呢?据我到全国各地网吧观察到的情况,其实能达到理想效果的网吧仍然是非常少见的.我本人从2001年开始进入网吧直到现在.弄过的网吧也有几十家了,现在虽然因为工作太忙,网吧不太去了,但是还管着一大一小两家网吧,琢磨这些东西也能有点年头了,有一些小小的心得,丢出来和大家一起探讨一下, 认为我说的有道理,就给点掌声,认为我在胡扯,那就丢点烂西瓜臭鸡蛋什么的.也许有些观念和您以前的认知完全相反,也许你完全不能认同我的观点,

2、没有关系,大家一起来讨论吧!第一篇:所有的网吧工具和软件,都是为网吧管理而服务的,并最终为网吧生意服务.我们网管在使用这些网维软件,应该时刻都要记得,我们不仅仅要让网吧能够正常运转,最终是要让网吧的生意变得更好.怎样让网吧生意更好,这里的原因和手段太多了,我不是来讲网吧经营的,我就仅仅从技术角度来看,咱们网管可以为网吧的生意做些什么:1)稳定(网吧的根本,没什么可说的)2)快(让顾客爽)3)多(满足各种顾客的需求)4)好(游戏优化,更新及时)5)省(给老板省点钱,省钱就是赚钱呀)满足这5大要素的网吧,基本上技术就到极致了.剩下的就是技术外的问题了.这5大要素当中,我们如何去做呢?我的答案非常简

3、单,弄好你的虚拟盘,把所有的游戏都放在虚拟盘上,本地的硬盘就只放个系统就可以了.相信很多人要问了,这样真的可以吗?速度够吗?带的起吗?我可以很明确的回答:完全可以!一台5千元的服务器就可以带150台,一台1万元的服务器可以带300台,一台2万的服务器几乎可以带上一千台,不但可以带的起,而且还比本地硬盘还要快的多的多!这样的做法有很多的好处,我总结了以下十大优点:1) 无人值守自动更新游戏,无需推送到客户端,无需额外管理2) 好的虚拟盘,可以达到几乎无限的速度,完全突破系统的瓶颈,远比本地硬盘快的多.到底有多快,我在后面就会说明.3) 容量扩展将变的更加简单, 现在1.5T的硬盘也就8xx元,弄

4、2个装上,代价不过16xx元而已,3T的游戏空间啥游戏不能装?4) 玩家启动游戏没有更新过程,完全无需等待5) 不会出现因为磁盘空间不足导致的游戏误删除,不怕游戏强推6) 大幅度减少磁盘扫描现象,E盘扫描可以杜绝7) 客户机方便部署,只需要GHOST系统盘8) 只要服务器管理得当,游戏分区不再有病毒问题9) 方案同样适用于所有的无盘,让无盘只负责C盘和回写,游戏完全交给虚拟盘来进行管理,既减少了无盘服务器的负载压力,又方便而易于部署10) 其实,弄个好的虚拟盘服务器并不贵,平均摊到每客户机成本还不到50元,网吧如果旧硬盘不更新的话,硬盘上省下的钱远不止这点.明白了这些好处,接下来的问题就是如何

5、去用好虚拟盘.我的文章会从以下几个方面展开:1) 一些基础的知识2) 硬盘的基本原理和性能分析3) 虚拟盘的性能分析4) 虚拟盘的负载能力5) 虚拟盘在网吧中的实际应用6) 典型案例和推荐方案7) 一些问题这个系统+虚拟盘的方案,它并不是一个新鲜的概念,曾经有许多人也做过积极的尝试,有部分人很成功,而更多的人,因为无法解决高负载情况下的服务器性能问题,而放弃尝试.问题在哪里呢?我在后面要讲解的,就是这些成功的秘诀.好了言归正传,今天继续开讲,先来说一些最基本的东西.第一个问题,网吧怎样算卡,怎样算不卡,达到什么样的条件才不会卡?这个问题看起来非常的白痴,但是真的要是去问问我们的网管,可能问10

6、0个人就会有99种说法,仔细想想,这个问题真的那么简单吗?其实造成卡的因素非常的多,外网延迟高,内网不稳定,CPU,显卡太差,内存不足等等.今天我们这里只讨论磁盘和虚拟盘的问题,磁盘或者虚拟盘造成的卡,是和写入或者读取的速度有关的,在游戏运行过程中,速度降低到多少才会出现较为明显的停顿呢?这个因不同的游戏而异.但是基本的,我可以提供一个参考数值:1MB/S!启动游戏时,1MB/S的速度估计会慢的让人很郁闷,但是对大多数游戏来说,只要进了游戏以后,如果任何时候都能满足1MB/S的读写速度,游戏就可以运行的很流畅.在服务器上观察客户机的读写,几乎90%以上的客户机平时读写数据都是0,偶尔读一点,也

7、是128K,256K这样的流量,.不信的话,你可以认真的观察一下服务器的情况.很多百M内网的网吧里,在虚拟盘服务器上运行游戏,除了启动略慢一些,游戏过程中依然可以很流畅的.对有盘的网吧来说,在本地运行的游戏要达到1MB/S的标准实在太容易了,所以有盘网吧里硬盘导致的卡是很罕见的,往往是其他的原因才会出现卡的情况.但是对无盘网吧来说,情况要糟糕一些,事实上很多无盘网吧都容易出现卡机现象,原因是无盘服务器回写的压力是非常大的,回写的文件多半细碎而且难以缓存,所以服务器硬盘常常处于负荷的极限,这种情况下是很容易卡的.我这里并不是说无盘不好,只是因为很多代理商施工的时候为了追求利润或者追求高带机量,让

8、服务器带了过多的客户机,这样回写的压力是非常大的,很多人都对服务器性能过于乐观了.再来说说快和慢的问题,到底磁盘要多快才够呢?我们在疯狂的做RAID0的时候,测到200-300M/S的速度的时候,也许自己还不是很满意,还想能不能再快一些,快到400M甚至500M,可是事实上我们需要那么快吗?我们来做一些简单的分析.我们的测试客户机是这样的:CPU 酷睿2200显卡9600GT内存2G这样的机器是去年下半年网吧比较典型的配置.这样的机器,在读取硬盘数据的时候需要多少的速度才能满足要求?才能不成为系统的瓶颈?我们使用一个固态硬盘作为参照-OCZ的一个32G的固态硬盘来做测试,这样硬盘不会成为系统的

9、瓶颈,CPU和显卡的处理速度才是系统的瓶颈.测试结果是:WINDOWS XP一般启动一次大概要读取250M左右的数据,最高启动速度为30M左右魔兽世界进入到游戏画面,所有读取的数据大概为300M左右,最高的读取速度不到30M.我们随后又测试了多款游戏,大部分的游戏启动,都不超过25M/S.随后我们用PCMARK05进行测试,结果如下:1.jpg (53.12 KB)2009-9-24 10:01(图2-1:PCMARK05测试OCZ固态硬盘)如图所示,模拟启动XP的速度为27MB/S,模拟程序载入时23MB/S,普通应用18MB/S,只有做模拟病毒扫描时才达到104MB/S.初步的结论:我们这

10、样的机器,对数据的需求最高不超过30M,在绝大多数时候,数据流量在10M以下,那么几百MB/S的硬盘是我们需要的吗?不不,事情绝对不是那么简单的,硬盘中还隐藏着很多不为大家所熟知的秘密,下一节我会用非常大的篇幅来仔细的讨论这个课题.接下来我们说说负载问题,对虚拟盘服务器来说,怎样算带的起,怎样算带不起?我的方法也很简单,找出虚拟盘服务器整个系统中最薄弱的环节,仔细测量薄弱环节的性能和能力,按照客户机平均读取流量,计算服务器能负载的极限值,然后,为服务器留出3-5倍的性能余量.这样基本上就是带的起了.有很多种方法可以测量服务器的负载情况,如果你对自己服务器的性能掌握不太清楚的话,可以自行监测一下

11、.多数虚拟盘服务器的瓶颈都在于硬盘,我这里提供一个简单的监控硬盘性能的方法.在服务器上打开 开始程序管理工具性能.2.jpg (43.36 KB)2009-9-24 10:01(图2-2:WINDOWS自带性能监视工具)然后选择计数器日志,新建一个磁盘监控的任务,再添加一个计数器,选择硬盘(physicaldisk),选择你要监控的磁盘分区,然后从列表选择计数器: % disk time,然后将时间周期设定为1秒,这样,系统会每一秒钟记录一次磁盘的运作情况,输出为csv格式,可以直接用excel打开分析.如下图:3.jpg (75.73 KB)2009-9-24 10:01(图2-3:用WIN

12、DOWS自带性能监视工具记录服务器状态)这里解释一下什么叫% disk time,词可翻译为磁盘工作时间的百分比,输出的数值多半为5.x,86.x,264.x,对应的意思是:这一秒钟有磁盘有5%的时间在工作,86%的时间在工作,264的意思是工作需要2.64秒才能完成,对这秒钟来说,磁盘已经远远的超过了负荷,就有可能会卡了.这个数值100%为磁盘满负荷,小于100%,就是未满负荷,大于100%,就是超过磁盘的承受能力.用这个计数器可以无限的记录下去,在你网吧人最多的时间,找一段数据出来分析一下,你就会知道你的服务器到底负荷怎样.我举一个例子吧,下面这段数据是某网吧虚拟盘服务器在8月8日晚上20

13、:0022:00点之间记录的,这个网吧当时约90人,所有的游戏都放在该服务器上的该硬盘上(一个1.5T的希捷11代硬盘).我用execl分析成图表如下:4.jpg (52.49 KB)2009-9-24 10:01(图2-3:某网吧虚拟盘服务器高峰时段的硬盘读写时间图)分析整整2小时的数据,我将读写时间从高到低进行排列,最忙的那一秒钟在8月8号的20:53分,负荷达到了95%左右.从整个横线的比例来说,1%不到的时间,硬盘的负荷在90%30%之间.大概有2%左右的时间,硬盘的负荷在30%10之间其他大概97%左右的时间,硬盘仅仅工作在10%的负荷之内.这是很理想的情况,这种负载下,服务器是真的

14、带的起,带的轻松.负载的客户机再增加5倍都没什么问题.这里还要补充一下,并非硬盘达到100%以上客户机就会卡,在100%那一刻,没有去读数据的客户机不会卡,就算去读的客户机也不一定会卡,因为数据的需求量并不一定是那么大的,而且,1秒很快就过去了,就算数据受阻,一般也未必感觉的到,但是!经常性长期性的超过100%,那就总有碰到卡的时候.欢迎大家自查自己的服务器,很期待看到大家贴出自己服务器的硬盘负载图.下一节: 硬盘中的惊天大秘密!既然要谈论虚拟盘,那我们就先从硬盘开始说起目前市面上可以买到的硬盘大体分为三种:1.普通的sata硬盘,最为常见,性能一般,转速7200转,容量从80G-2000G不

15、等,价格低廉.无需专用接口,一般主板都支持.2.高级一些的SAS硬盘,属于服务器配件,需要专门的SAS接口,这种接口在高端的服务器主板上才会有,普通的主板要用sas硬盘的话,可以买专门的sas接口RAID卡.价钱较贵,一般147G的硬盘就要1K多了,速度比普通sata硬盘要快一些.3.新型的固态硬盘,也称为SSD,这种硬盘使用flash进行存储,没有机械结构,最大的优点是寻道时间非常低,现在最快的SSD,已经可以达到250M的读取速度,200M的写入速度,性能全面超过以前的老式硬盘,缺点是容量太小,价钱较高.一般120G的SSD就要卖到2-3K了.固态硬盘目前比较多使用在高级的服务器上,部分高

16、端的笔记本也会使用一些SSD.第一部分:普通的SATA硬盘:硬盘的工作原理,可以从这段视频中清晰的看到这段视频展示了我们在删除,复制粘贴,快速格式化时,磁头的相应工作情况,印象最深的是磁头疯狂摆动的样子.我们先来了解一些硬盘的基本概念,如图是硬盘的盘片的示意图:1.jpg (57.57 KB)2009-9-24 10:08(图3-1:硬盘中的盘片示意图)磁道磁盘在格式化时被划分成许多同心圆,这些同心圆轨迹叫做磁道(Track)。磁道从外向内从0开始顺序编号。信息以脉冲串的形式记录在这些轨迹中,这些同心圆不是连续记录数据,而是被划分成一段段的圆弧,每段圆弧叫做一个扇区,扇区从“1”开始编号,每个

17、扇区中的数据作为一个单元同时读出或写入。一个标准的3.5in硬盘盘面通常有几百到几千条磁道。磁道是“看”不见的,只是盘面上以特殊形式磁化了的一些磁化区,在磁盘格式化时就已规划完毕。扇区操作系统以扇区(Sector)形式将信息存储在硬盘上,每个扇区包括512个字节的数据和一些其他信息。一个扇区有两个主要部分:存储数据地点的标识符和存储数据的数据段, 标识符就是扇区头标,包括组成扇区三维地址的三个数字:扇区所在的磁头(或盘面)、磁道(或柱面号)以及扇区在磁道上的位置即扇区号。簇簇就是更大的扇区,它可以是一个扇区、也可以是2个、4个、8个等等,它究竟有多大是在高级格式化的时候决定的。把相邻的若干个扇

18、区组合起来就是一个簇,和扇区一样,一个簇内不允许存在两个文件,因此当储存一段比单个簇的容量还要小的数据时,会浪费一些储存空间。比如镞是64K,那么那怕只有一个字节的文档,也会占用64K的空间,对于QQGAME之类的小文件极多的游戏,浪费的空间是很大的.簇就是我们在格式化的时候,可以选择的区块大小,从512B-128K不等,如果我们选择比较大的簇,空间会比较浪费,但是虚拟盘出盘的流量会大为减少.如下图:2.jpg (50.94 KB)2009-9-24 10:08(图3-2:虚拟盘出盘数据量)这是个1.5的硬盘,几乎装满了游戏,但是出盘仅仅只要读取3M数据,这个分区是用64KB为单位进行格式化的

19、,如果使用32KB的簇,那么出盘流量就会变成2倍:6M,如果使用默认的方式格式化(512B),那么出盘的流量就会达到300多M,这样的数据是很恐怖的,对分区硬盘大的的服务器会导致出盘的效率极度低下.来看看这么一张截图,是用HDTUNE测试硬盘基准测试:3.jpg (70.45 KB)2009-9-24 10:08(图3-3:HD TUNE文件基准测试图)对一个硬盘分别采用从512B,1K,2K8M等从小到大的不同区块大小,进行测试读写速度,总的速度来看是逐渐升高的,到64K以后,就基本持平了,对于过小的区块大小,磁盘读取后数据的处理时间还赶不上磁头读取的速度,因此小区块造成的速度衰减是非常明显

20、的,我们在后面的测试当中,大部分都基于64K的区块,这样反应的数据比较有价值.1M,8M这样的区块大小我不会在测试中采用,对真实应用的指导性不大,因为我们一般的虚拟盘都是基于512B-64K之间的大小来进行格式化的.区块大小对于虚拟盘的测试会产生非常大的数据偏差.在客户机上测试网维大师的虚拟盘,用512K区块时,可以达到90M以上的读取速度,但是在64K时,只有55M的读取速度.常常在论坛上看见很多比拼虚拟盘或者无盘的读取速度,很多人都没有注意这个区块大小的问题,不同区块大小造成的测试结果偏差导致很多比拼失去了公平的意义. 平均寻道时间(Average seek time):指硬盘在盘面上移动

21、读写头至指定磁道寻找相应目标数据所用的时间,它描述硬盘读取数据的能力,单位为毫秒。寻道时间和这几个因素有关:盘片大小,磁头移动速度. 平均潜伏时间(Average latencytime):指当磁头移动到数据所在的磁道后,然后等待所要的数据块继续转动到磁头下的时间,一般在2ms-6ms之间。 潜伏时间和盘片转速关系最大. 平均访问时间(Average access time):指磁头找到指定数据的平均时间,通常是平均寻道时间和平均潜伏时间之和。平均访问时间最能够代表硬盘找到某一数据所用的时间,越短的平均访问时间越好,7200转的SATA硬盘一般在11ms-18ms之间,典型的15000转SAS

22、硬盘一般在5ms-8ms之间.现在,一般在说的平均寻道时间往往指的就是指平均访问时间,我们在后面也用平均寻道时间来代表这个平均访问时间.Sata硬盘的性能取决于2大指标:一是硬盘的转速,转速越高性能越好,一般的sata硬盘转速都是7200转,也有少量的5400转产品,多用在笔记本上,西数还有一种特别的迅猛龙硬盘,是一万转的,盘片是2.5寸的,比普通硬盘的3.5寸盘片小很多,转速高,盘片小,使得迅猛龙硬盘在寻道时间上比普通硬盘缩短了近一倍的时间,实际性能已经很接近于sas硬盘了.,二是磁盘的单碟容量.存储密度的提高对性能提升是很有好处的,在磁头划过同样的距离时,密度越高的磁盘,读取的速度自然越多

23、.这点对顺序读取的性能提升尤其非常明显.普通的硬盘有多快呢?我们先看一个截图:4.jpg (76.76 KB)2009-9-24 10:08(图3-4:HD TUNE测试希捷11代盘顺序读取)硬盘是希捷11代的1.5硬盘,单碟容量500G,是当今最快的SATA硬盘之一.(因为测试的时候服务器还在提供负载,所以曲线不是很平滑).这个测试显示的是硬盘连续读取的状态.使用的工具是HD-TUNE PRO 3.50版本.从这个图看,该硬盘的外圈速度已经达120MB/S以上,速度应该是非常理想了,但是我们来看另一个测试:5.jpg (70.85 KB)2009-9-24 10:08(图3-5:HD TUN

24、E测试希捷11代盘随机读取)还是那个硬盘,这次我们测试的是随机读取的速度,在硬盘中随机选取N个小点,每个小点代表64K的数据.和上面连续读取的条件一样,都是读取64K的区块,结果速度降到了3.577MB/S,相差了近30倍.为什么有如此大的差异呢?因为硬盘的性能指标中,读取数据的性能远大于寻找数据的性能.读取一个64K的数据,硬盘只需要1/2000秒,也就是0.5MS(毫秒)但是要找到这个64K的数据,硬盘需要花费1/57秒的时间,也就是17MS.这两个性能相差了30多倍.如果硬盘花在读取数据上的比例多,性能就会很好,如果硬盘花在寻找数据的比例多,那性能就会变的非常糟糕.那么,在实际应用当中,

25、哪个数据更有参考意义呢?我的结论是硬盘的随机读取速度才代表硬盘的真正速度,因为实际在网吧里的应用大部分都是随机读取的过程,为什么这么说呢?原因有以下几点:1) 客户机上的硬盘很难将文件排列整齐,随着硬盘满了删,删了写,满了又删,长久以往,硬盘上的游戏难以按顺序排列,而且碎片很多,而网吧的环境又很难常常去整理硬盘,如果不幸用的是300G以上的硬盘,那整理的过程是会让人崩溃的.2) 就算是初次刻盘,将文件都好好的排好了,也不会是连续读取,因为基本没什么游戏会对硬盘的读取顺序进行优化,多数的游戏里面文件排列的规则都是按照开发人员易于管理的方式进行排列,比如素材这类的放在一起,地图这类的放在另一个文件

26、夹里,人物的画面又放在其他文件夹里等等,这样的游戏在读取的时候,必然是地图要读,素材要读,界面要读,人物图片要读,这必然是”随机读取”的过程.3) 对硬盘来说,就算是读取连续文件,但是如果存在2个或者2个以上的读取线程,那就马上变成随机读取了,硬盘的磁头会不停的移动,一会去内圈为A进程读取,马上又去外圈为B进程读取.在XP开机刚进桌面的时候,因为进程很多,这时候磁盘速度会变的奇慢无比.4) 随机读取的衰减是非常惊人的,100%的顺序读取很罕见,多半都是部分是顺序的,部分是随机的,只要有少量的随机读取的比例,磁盘的性能就会急速的衰减.说了这么多,很多朋友肯定还是不信,那么我们来看看真实的数据吧.

27、6.jpg (65.28 KB)2009-9-24 10:10(图3-6:PCMARK测试intelSSD和希捷11代盘)这个图是天极网做过的一个评测,用最爱生活 爱顺网的机器(爱妻+爱生活 爱顺网显卡),再超频到极限以后测试的结果,以尽可能好的机器来挖掘硬盘的潜力.分别用INTEL的固态硬盘和希捷11代盘来测试PCMARK VANTAGE.显示的数值是2个硬盘在运行不同的测试项目时读取硬盘的平均速度.INTLE的固态硬盘是当今最快的固态硬盘之一,读取速度达到250MB/S,写入速度也能达到200MB/S以上,而且固态硬盘的特质就是随机性能和顺序读取性能相差无几.仔细看看这个图,是很有启发的,

28、我们来看Gameing这一项(第3行),在运行游戏项目的时候,固态硬盘读取的平均速度是95MB/S,而普通硬盘只有10.5MB/S.在SSD的测试当中,硬盘不是系统的瓶颈,瓶颈是机器本身的处理性能,包括cpu和显卡,这说明这个系统的处理能力是95MB/S.在SATA硬盘的测试当中,虽然系统能达到95MB/S的处理能力,但是硬盘只能输出10.5MB/S.这说明了,这个测试中,硬盘只能达到10.5MB/S的读取速度.因为PCMARK VANTAGE只能在VISTA上运行,因此我们没有去复现这个测试,基于XP,我们用PCMARK05做了以下的对比测试:7.jpg (52.13 KB)2009-9-2

29、4 10:10(图3-7:PCMARK05测试OCZ的SSD)这个图是上一节出现过的,采用网吧内普通的机器测试,这个OCZ的固态硬盘是去年夏天购买的,是OCZ第一代的SSD,采用JB的控制芯片.对比一下希捷硬盘的测试结果:8.jpg (50.23 KB)2009-9-24 10:10(图3-8:PCMARK05测试普通sata硬盘)结果差异虽然不如天极测试的明显,但是结论是一致的.测试中SSD硬盘在XP启动,游戏载入,普通应用这3项测试上能达到20-30MB/S的读取速度,这说明客户机的CPU和显卡的处理性能基本就在20-30mb/s这个水平上.普通的sata硬盘在XP启动,游戏载入,普通应用

30、这3项测试上只有7-8MB/S的读取速度.这说明,硬盘的读取能力仅有7-8mb/s的水平.这就充分说明了:在游戏测试的项目中,硬盘去读取这些数据多数都是”随机读取”的状态,对固态硬盘来说,随机读取和顺序读取几乎是一样的,所以衰减很少,可以全速读取,但是对普通的硬盘来说,做随机读取需要消耗大量的寻道时间,实在是快不起来啊!在图3-5的测试当中,硬盘需要花费95%以上的时间来进行寻道,只有5%的时间在读取数据.在各种不同的应用当中,表现的情况是随机读取的情况占大多数,在网吧中游戏是最主要的应用,普通的硬盘在游戏的表现中是非常不理想的.因为随机读取性能更能代表硬盘本身的性能,所以我们在后面的测试大部

31、分都是采用随机读取的测试结果.总结:普通的7200转SATA硬盘,目前性能最好的已经达到了单碟500G容量.用64K区块进行测试,这些硬盘顺序读取速度在外圈都超过100MB/S的速度,但是随即读取的速度一般只在3-4MB/S之间,而实际应用中,随机读取的速度决定了硬盘的快慢表现.下一节,我为大家说说SAS和SSD硬盘,神秘的SAS和SSD硬盘对很多人来说就是昂贵和性能的代名词,究竟如何呢?下回分晓.什么是sas硬盘:SAS是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。SAS是并行SCSI接口之

32、后开发出的全新接口.简单的说,sata是家用版本,sas就是服务器版本.sas硬盘多半是采用2.5寸的盘片,sata一般是3.5寸的盘片(笔记本硬盘和迅猛龙硬盘除外).Sas硬盘转速一般是1万转/分钟,或者是1.5万转/分钟,而sata的转速一般是7200转/分钟.Sas硬盘的磁记录密度和sata差不多,所以连续读取速度上和sata硬盘差不多.但是sas硬盘的平均访问时间比sata快很多,所以在随机性能上有一定优势.平均访问时间是由寻道时间和潜伏时间决定,而寻道时间由盘片大小和磁头臂移动时间有关,而潜伏时间和转速有关,综合起来,1.5万转的sas平均访问时间大概是是5-8ms,而sata一般是

33、10-20ms.下面我们通过测试来看看,1.5万转的SAS硬盘究竟有多快,先看看顺序读取的情况:1.jpg (66.79 KB)2009-9-25 10:16(图4-1:HD TUNE测试希捷15000转SAS硬盘顺序读取)使用的是希捷146G的15000转sas硬盘,在全顺序读取的情况下,最高速度为125M.这个速度和普通的希捷11代盘差不了多少.再来看随机读取的情况:2.jpg (64.19 KB)2009-9-25 10:16(图4-2:HD TUNE测试希捷15000转SAS硬盘顺序读取)因为寻道时间的大幅度减少,随机性能比sata硬盘好了不少,但是也只有9.6MB/S,大概是sata

34、硬盘2-3倍的速度.这样,我们基本上就可以理解为sas硬盘的速度是sata硬盘的2-3倍,在实际应用的时候,我们确实发现sas硬盘对于无盘回写的处理能力,和2-3个sata硬盘的回写处理能力相当.在支持多回写的无盘软件上,用一个sas硬盘和3个sata硬盘所能得到的效果和带机量是相当的.再来看看固态硬盘的情况:基于闪存的固态硬盘,采用FLASH芯片作为存储介质,就是我们通常所说的SSD。固态硬盘中,存储单元又分为两类:SLC(Single Layer Cell 单层单元)和MLC(Multi-Level Cell多层单元)。SLC的特点是成本高、容量小、但是速度快,而MLC的特点是容量大成本低

35、,但是速度慢。MLC的每个单元是2bit的,相对SLC来说整整多了一倍。不过,由于每个MLC存储单元中存放的资料较多,结构相对复杂,出错的几率会增加,必须进行错误修正,这个动作导致其性能大幅落后于结构简单的SLC闪存。此外,SLC闪存的优点是复写次数高达100000次,比MLC闪存高10倍。此外,为了保证MLC的寿命,控制芯片都校验和智能磨损平衡技术算法,使得每个存储单元的写入次数可以平均分摊,达到100万小时故障间隔时间(MTBF),达到20年以上的使用年限.固态硬盘的优点是寻道时间短,没有机械机构,耐冲击.缺点是价格高,容量小,写入速度一般.固态硬盘这几年发展的相当快,每GB价格下降很快,

36、几乎每年都要跌去一半的价格.固态硬盘的存储单元flash,本身速度并不是非常快的,象U盘一样,一般的读取速度也就几十M左右,但是因为flash访问延迟很低,因此固态硬盘的做法是就是将很多flash组成多个RAID0来提升速度,象INTEL提供的方案就是10通道的raid0,这样速度可以提升到200MB/S以上.同样,我们用测试的数据说话,看看SSD到底有多快.测试对象是金士顿的32G固态硬盘,采用SLC芯片,是INTEL的OEM产品,性能和intel的硬盘几乎一样.顺序读取:3.jpg (73.81 KB)2009-9-25 10:16(图4-3:HD TUNE测试金士顿32G固态硬盘顺序读取

37、)顺序读取速度稳定在210MB/S,平均的存取时间只有0.1秒.再来看随机读取的情况:4.jpg (74.92 KB)2009-9-25 10:16(图7:HD TUNE测试金士顿32G固态硬盘随机读取)同样的测试条件,金士顿的固态硬盘的随机读取的速度达到了惊人的128MB/S!平均读取时间为0.48MS,IO达到2061,这个性能是sata硬盘的30多倍,也是sas硬盘的10多倍.结论:sata硬盘的性能远不如我们想象的那样,在实际应用当中,sata硬盘往往只有7-8MB/S的读取性能,而1.5万转的SAS硬盘确实比sata要快,性能大概能达到sata的2-3倍,而最快的硬盘式固态硬盘,能达

38、到sata硬盘的30倍性能.因此, 为虚拟盘服务器挑选硬盘时,如果仅从性能上考虑的话, SSD是最好的选择,sas硬盘次之.下一节,我们继续就硬盘的随机读取性能进行深入的分析.在第三篇的时候,我讲到了一个观点,就是在应用中多数的情况都是有部分数据是随机读取的,部分数据是连续读取的,我还讲到,少量的随机读取的比例就会导致硬盘的性能大幅度的降低,现在我们来看看随机数据的比例对硬盘的确切影响.我们使用IOMETER来进行这项测试.IOMETER是专业的磁盘测试工具,因为可以灵活的设定测试的详细条件,因此在很多专业评测中采用.大家有兴趣的话也可以研究研究.先看看sata硬盘的测试情况.测试对象是一个西

39、数的80G SATA硬盘.1.jpg (41.77 KB)2009-9-25 10:29(图5-1:IO Meter测试西数80G硬盘读取,0%随机)第一图是全顺序读取的结果,这个硬盘连续读取的能力为55MB/S.IOps是877.测试区块仍是64K.2.jpg (48.79 KB)2009-9-25 10:29(图5-2:IO Meter测试西数80G硬盘读取,5%随机)仅仅是加入了5%的随机数据,性能已经衰减到20MB/S,iops降低到474后面的测试图我就不一一张贴了,整理成下图3.jpg (40.01 KB)2009-9-25 10:294.jpg (20.73 KB)2009-9-

40、25 10:295.jpg (26.03 KB)2009-9-25 10:29接下来看看SAS 硬盘的情况全顺序读取:6.jpg (58.87 KB)2009-9-25 10:29(图7:IOmeter测试希捷15000转sas硬盘顺序读取)25%的随机数据读取:7.jpg (54.13 KB)2009-9-25 10:29(图7:IOmeter测试希捷15000转sas硬盘25%随机读取)50%的随机数据读取:8.jpg (61.65 KB)2009-9-25 10:29(图7:IOmeter测试希捷15000转sas硬盘50%随机读取)100%的随机数据读取:9.jpg (63.86 KB

41、)2009-9-25 10:29(图7:IOmeter测试希捷15000转sas硬盘100%随机读取)整理成图表:10.jpg (11.03 KB)2009-9-25 10:2911.jpg (20.91 KB)2009-9-25 10:2912.jpg (19.1 KB)2009-9-25 10:29综上,只要有少量的随机数据,硬盘的性能就会急剧的下降,sata和sas硬盘都不例外.在来看看对固态硬盘来说,随机数据的影响.讲完了硬盘,下一节,我们来看看虚拟盘的性能虚拟盘:虚拟盘是一种虚拟的网络存储空间,它是通过网络来管理和使用的远程硬盘空间,可用于传输、存储、下载和备份计算机数据文件,聊天软

42、件绑定的网络硬盘与传统的存储方式相比较,具有管理和使用方便的特点。虚拟盘工作过程:客户机发出读取需求指令通过网络传输到服务器服务器去读取数据通过网络将数据发送给客户机,整个环节中,最有可能造成延迟的部分就是后2个环节.服务器读取数据的环节,一般是服务器先在缓存中寻找,如果缓存中没有,则到相应的硬盘中去读取.缓存命中的数据,其延迟是微乎其微的,所以主要延迟还是硬盘的延迟.通过网络将数据发送给客户机这个环节,还要经历软件处理网卡网线交换机网线客户机网卡客户机,这么多的过程中,虚拟盘软件的传输协议,网卡的性能,交换机的性能,网线的性能都会影响到最终的虚拟盘性能.总结起来,影响虚拟盘性能的主要因素就是

43、:硬盘性能,软件性能,网络性能.下面逐个来分析一下.首先来说说网络,典型的千兆网络,使用超5类网线传输,经过我们测试,其实延迟是非常之低的,看看这个测试图:1.jpg (73.51 KB)2009-9-25 10:36(图8:交换机性能测试)这个测试表明,在64字节这样的极限条件下,2个交换机的通过率都超过99%以上,请注意测试单位是64字节,而不是64kb,普通硬盘如果用512字节来测试的话,连续数据也只有3-4MB/S,随机数据就只有几十KB/S了.交换机上单个包的延迟仅为4微秒,比硬盘的15毫秒的寻道时间少了3000倍.尽管网吧里的状况不可能象实验室中的测试条件那么好,但是实际上,网络上

44、真正的延迟还是远比硬盘的延迟要低的多的多!我们再来看看虚拟盘软件在客户机用HDTUNE测试网维大师5.0版本虚拟盘的速度.我们将数据全部缓存在内存当中,以屏蔽硬盘对虚拟盘速度的影响,按64K的条件来测试,结果如下:2.jpg (26.32 KB)2009-9-25 10:36(图9:虚拟盘在缓存命中情况下随机读速度(客户机测试)测试方法是随机读取,在64K的条件下,速度约55MB/S左右,很好理解,服务器每次按64KB大小进行发包,1秒钟要达到55MB的流量,需要发880个包(普通硬盘每秒只能处理60个64K的数据),因而我们可以计算出虚拟盘软件+网络最终造成的延迟:64KB/55MB*102

45、4=每个64K包的延迟=1.1毫秒由此可见,软件性能和网络性能导致的延迟相加不过是1.1毫秒而已,远比普通硬盘的10毫秒-20毫秒的延迟小的多.所以:真正要提高虚拟盘的性能,关键还是在于硬盘,硬盘才是整个环节中的最大瓶颈.我们加上硬盘的影响,做个直接的对比测试吧:3.jpg (32.06 KB)2009-9-25 10:36(图10:虚拟盘在有缓存和无缓存情况下随机读速度(客户机测试)蓝色的是完全没有内存缓存的情况,所有的数据都是直接从硬盘中读取.在同样的测试条件下,同样的虚拟盘,缓存命中和缓存未命中带来的差异是惊人的.除了固态硬盘,其他2个硬盘的测试结果都非常的糟糕.希捷7200.11虚拟盘

46、速度只有缓存命中情况下的1/10,超过90%的时间都损耗在硬盘的寻道时间上了.分析到这里,要获得好的虚拟盘性能,对应的方法就很简单了:1、尽可能的减少硬盘的读取,用内存对常用数据进行缓存.2、尽可能提高服务器硬盘的性能,比如使用SSD硬盘3、使用好的虚拟盘软件4、网络性能不能太差OK.下一节我们开始讲该怎么做.由上一节,我们得到一些基本的结论,在虚拟盘读取的所有环节里,硬盘是速度上的最大瓶颈,所有其他的因素,包括网卡,网线,交换机,软件性能,操作系统平台等等,它们加起来所造成的延迟不到硬盘的1/10,所以,要提高虚拟盘最终读取速度的关键就在于硬盘.我们来看一个典型的测试,在客户机上,用HDTU

47、NE对虚拟盘进行随即读取测试.我们用内存进行读取数据的缓存,这样测试到的数据全部是从服务器中的缓存发出的,结果如下:1.jpg (57.7 KB)2009-9-27 09:54结果可以清晰的看到,在64K区块测试的时候,延迟1.2毫秒,是sata硬盘的1/10,同时流量也达到了53.6MB/S,这个速度是普通的SATA硬盘绝对无法望其项背的.是SATA硬盘的10多倍,是SAS硬盘的5倍,已经非常接近于固态硬盘的读取速度了.虚拟盘有多少的负载能力呢?要回答这个问题,我们先讲几个概念,如果不能明白这几个概念,那就难以理解整个体系的奥秘所在.? 基本名词解释l 什么是缓存?在网维大师的虚拟盘中,会将

48、部分物理内存用于存储最常被读取的数据,当客户机请求读取数据时,服务器会先在这些内存中进行寻找,如果在内存中有这些数据,则直接由内存发出,只有内存中没有该数据,才会去硬盘中读取.l 什么是缓存命中率?是指所有服务器发出的数据当中,有多少比例的数据是从内存中发出的,越高意味着性能越好. 比如50%的命中率意味着,每从服务器发出100M数据,其中50M是从内存中发出的,只有50M是从硬盘中发出的,这就意味着与不使用缓存的服务器而言,我们服务器的负载能力扩大了2倍.l 如何提高缓存命中率?要想得到一个较高的缓存命中率,首先得有一个好的缓存算法,有了好的缓存算法能很大的提高命中率。其次,就是装上尽可能多

49、的内存。网吧中的真实负载情况要想明白一个虚拟盘服务器到底能带多少机器,首先得知道负荷会有多大,在一个典型的中型网吧里,装了1.8T的游戏,究竟在营业的时候,会读取多少的数据呢?这是很关键的问题,不知道朋友们是否认真的研究过这个问题,但是至少我在做这个测试之前,我还真的不知道这个准确的数字.好吧,我们来看看这个测试,这个测试网吧是个典型的中型网吧,机器110台,来的客户有学生,有民工,还有些上班族,生意一般,不好也不差.我们将所有的游戏均部署在虚拟盘上,统计了2天的数据. 注意:是所有1.8T的游戏,在客户机的本地硬盘上,一个游戏都不装!2天内所有的游戏读取数据量为448G.根据收费系统的统计,

50、2天内所有的客户机在线机时总共为1730小时.这样计算下来每秒每客户机的流量为: 448G/(1730小时*3600秒)= 75K/S后来我们也测试了一些其他的网吧,虽然不同的网吧,不同的玩家行为会造成一些差异,但是大体上结果是相似的.传统的虚拟盘的负载能力根据上述的一个网吧用户平均读取流量,我们就可以评估一下,传统的虚拟盘的负载能力.我们考虑一个简单的模型,假设这个传统的虚拟盘服务器,只有一个希捷7200.11硬盘,同时没有任何缓存机制,这种情况下,我们简单的算一下,这个服务器能带起多少机器.对这样一台服务器来说,因为硬盘的随机读取的能力仅为4MB/S, 网络和其他因素应该可以轻松的达到4M

51、B/S的能力,因此我们完全可以认为该服务器的性能瓶颈集中在硬盘上.按照4MB/S的硬盘能力,我们计算硬盘的极限承受能力:4M(硬盘随机性能)/75K=54台.意思就是说,按照75KB/S的平均读取需求,该服务器的硬盘最多能承受54台机器在线.实际上,为了应付突发的情况,我们应该为服务器留点余量,不能让服务器总是工作在满负荷情况下,假设按3倍的余量计算:54/3=18台.结论:这样的虚拟盘服务器,在18台机器的负载情况下,大部分的时候,性能和本地硬盘相当.这样的结论和我们经验值是比较接近的.在实际网吧应用当中,我们是不敢将所有游戏都部署在这台机器上,这点负载能力,太不够用了,那么,怎么办呢?89

52、楼的朋友在看到第六篇的时候,已经给出结论了,要提高虚拟盘的性能,出路就2个: 一个是用固态硬盘,二是用高内存做缓存,但是这两种办法都是非常昂贵的手段,网吧花的起这个钱吗?我的办法就在下一篇: 第八篇:首先,我来解释一下什么2/8原则.二八原则是19世纪末20世纪初意大利经济学家帕累托提出的,这个原则很简单:任何一组事物中,最重要的只占其中约20%,其余的80%虽然是多数,但是却是次要的。比如:80%的销售额是源自20%的顾客;80%的电话是来自20%的朋友;80%的总产量来自20%的产品;80%的财富集中在20%的人手中;非常简单的一个原则,但是现实生活中,你会发现这样的规则几乎是无所不在的.

53、基于2/8原则,在虚拟盘的应用上,我们可以引申出内容分级存储管理的概念.什么是内容分级存储?是指我们将所有可以用来存储内容的介质,按照性能的不同,分成多个级别,在进行存储的时候进行优化选择,将最常用的数据存储在性能最高的介质中,依次类推,将最少用到的数据存储在最廉价的介质上,实现速度和容量并重,同时造价尽可能的低廉.根据2/8原则.80%的顾客只玩20%的游戏,那么我们只要把这20%的游戏搞的很快,就能满足80%的顾客需求.这点,可以根据网维大师上的DP值排行就看的出来.再根据2/8原则,大部分的游戏,在80%的运行时间里,往往只读取其中20%的数据.这一点有根据吗?有,好好的观察一下,我们会

54、得到这么一个结果:魔兽世界这个游戏虽然有10来个G,但是进一次游戏,从启动图标开始一直到游戏画面中,需要读取多少数据呢?答案是:只要200M!在游戏里玩上1-2个小时,总共读取的数据也就500M而已!XP装完要至少1.5G,但是启动一个XP到桌面,需要读取多少数据呢?答案是:只要250M!同样的例子还有很多,我们对市面上几个常见的游戏均进行了测试,结果如下:永恒之塔 500MB穿越火线 600MBQQ飞车 95 MB反恐OL 240 MBQQ炫舞 200 MBQQ三国 100 MB天龙八部 130 MB魔兽争霸3 100 MB梦幻西游 30 MB诛仙 100 MBQQ寻仙 470 MB传奇 50 MB魔兽世界 200M除了穿越火线,QQ寻仙等几个腾讯出的BT游戏之外,大

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论