无盘上的读缓存命中率低于多少才算过低
发布网友
发布时间:2022-04-22 11:52
我来回答
共1个回答
热心网友
时间:2022-04-11 18:41
1、游戏虚拟盘的命中率低于多少才算过低?
一般命中率低有2个概念,概念1:数字的表现上,比如50%,这和命中率100%相比,肯定是低的。概念2:命中率是否影响客户机使用了,如果没影响,即便命中率是1%,也无所谓,所以这个指标应该是由网民来衡量的,他们说慢了,说卡了,说没以前快了(当然除了命中率低会导致慢、卡、没以前快,网络也是非常重要的),那才是真正的低,如果只是看数字表面是没任何意义的,同时只有理解了这一点,你才能真正的理解命中率的意义以及影响,包括下面所介绍的一切!
这个缓存命中率是和多种因素有关系的,不过可以通过一些简单的公式来得出是否“低”了。而命中率低的后果会造成两种现象,第一就是速度慢,因为要从磁盘上读的数据比较多,第二就是太低的时候会导致卡。
缓存命中率的概念是:客户机从服务器读取的数据中,有多少比例的数据是从服务器内存中读取的。
例如客户机读取1000MB的数据,缓存命中率为80%,那么就是说客户机读的这1000MB数据中有(1000MB*80%)800MB的数据是从服务器内存中读取的,那么就还剩(100%-80%)20%*1000MB=200MB的数据仍然要从服务器的磁盘中读取。
那么这个命中率是否算低呢?这就要说到决定命中率是否算“低”的第二个因素:客户机在多长时间内,读取了这1000MB数据。
比如在60秒内一共读了1000MB数据,因为命中率有80%,我们可以假设这800MB的数据从内存中读取是没压力的,至少没磁盘压力,那么会产生磁盘压力的就是那200MB数据,此时我们可以得出客户机的需求就是60秒内能读完200MB的数据,需要服务器磁盘提供多少速度才能满足客户机的读取需求
即:200MB/S/60秒≈3.33MB/S的速度,那么现在我们得到了客户机读取数据需要的速度值了。
最后我们就要看磁盘能提供多少性能了,而磁盘的读取性能就是决定命中率是不是真的“低”了的第三个因素。
打个比方,即便命中率为0,那么磁盘速度有1000MB/S的读取速度,那命中率算低,但是对客户机并没影响,所以说命中率也不低,当然这只是个非常极端的例子,目的是希望大家能了解命中率“低”对顾客的影响。
说到磁盘性能,这里就要再次提到磁盘有哪些性能了。
1、连续读取速度:这个性能指标是说从磁盘上连续性的读取数据的速度,普通的SATA盘可以达到90~130MB/S的速度,决定磁盘连续读取速度快慢的主要因素是磁盘转速和磁密度的高低,如果组了Raid之后会更好,不过对于连续读取这种现象来说,一般只有做“测速”这件事的时候,才会出现100%的连续读取。
2、随即读取速度:这个性能指标是说从磁盘上随机找到数据并读取的速度,普通的SATA盘一般都只有3~4MB/S的随机读取性能。而且一般廉价或者板载的阵列卡对随即读取也是没任何帮助的,决定随即读取速度的是磁盘的转速,磁密度,和盘片数量。
那么,连续读取速度有100多MB/S的速度,随机读取速度只有3~4MB/S的平均读取性能,那到底哪个性能指标是我们需要的呢?答:随机读取速度。为什么会是这样呢?原因很简单:
首先,磁盘在使用过程中会产生磁盘碎片,而碎片势必导致数据无法被连续性的读取。
其次,应用也不会100%完全读取,举个形象的例子,说玩传奇这个游戏,启动游戏时,他需要同时读取地图,声音,人物外观这些数据,那么你认为磁盘会将这些数据按顺序放好吗?结论是肯定的,完全不可能。因此我们可以确定应用或者说游戏,不可能做连续读取这种操作。
另外,磁盘的工作方式也不会100%连续操作,因为物理硬盘只有一个磁头,可能有几张盘片,而读取或写入数据这件事,就是要磁头来完成的,而在顾客上机的时候,很多时候读取数据的要求是这样的:QQ发送指令给磁头,说你给我找下张3的聊天记录,同时给我保存和李四的聊天记录和图片,同事我在听歌,你再去给我找下“xxoo”这首歌……那么这种情况下一个磁头肯定是非常忙的,因为他一会要干这,一会要干那,而且必须快速完成,那么像这种应用环境就决定了顾客在上机过程中,磁盘不可能100%的连续读取。
因此,对于磁盘性能,更加重要的指标就是随机读取速度的快慢,那么再结合缓存命中率来说,我们之前的例子是说客户机60秒内读取完200MB的数据,需要服务器磁盘提供3.33MB/S的速度,而SATA盘能提供的随机读取速度刚好是3~4MB/S左右,所以在之前的那个例子中,80%的命中率并不算“低”。
说了这么多,总结下来,我们就可以有一个大概的公式,来大致计算命中率是否算“低”。
读盘总量/客户机上机总时长*(100%-缓存命中率)≤存放游戏磁盘的随机读取速度。
如果结果是这样的,那么这个命中率就不低,如果结果是相反的,那么说明命中率确实低了。
读盘总量:是系统虚拟盘控制台上的一个数据,可以直接在控制台上看到。
客户机上机总时长:可以通过计费软件来统计,Pubwin可以在营业报表中看到这项统计。
缓存命中率:就是游戏虚拟盘控制台上的显示内容了。
2、系统虚拟盘上的读缓存命中率低于多少才算过低?
对于系统虚拟盘的缓存命中率的算法实际上和游戏虚拟盘是一样的,不过服务端设置1024的读缓存,基本都不会给存放img镜像的磁盘带来什么压力了。
因为一个xp系统启动所需要的数据大概为250~350MB左右,1024MB的缓存足可以缓存这些内容了,那么有人就会疑问,为什么我看到的不是像你所说的那样,按照你说的应该是缓存命中率是100%才对,而不是90%,或者80%,或者是其他的数值。
没错,您的理解是完全正确的,但是系统虚拟盘的读缓存,并不是只缓存客户机的读取数据,而且还会缓存客户机回写到客户机的C盘后,又再次读回来的数据,正是因为这样,才会导致系统虚拟盘的读缓存命中率不是100%。
那么如何回避这些问题呢?方法也很简单:
1、不要把下载工具的下载默认路径设置为C盘,可以设置到其他分区,例如游戏虚拟盘的分区。这并不会导致游戏性虚拟盘压力增大,大家不需要担心,因为无盘上的回写,无论你设置写到客户机的哪个盘,都是写到系统虚拟盘服务器的回写盘里面,之所以建议大家这么设置,是为了避免系统虚拟盘读缓存命中率显示过低的问题。
2、不要把IE的默认下载路径设置到C盘。大家可以通过修改注册表实现修改IE默认下载路径,不过您修改的IE默认下载路径必须是个存在的目录。
下面这个注册表就是将IE默认下载路径设置到“E:\我下载的文件”目录中,您可以手工修改。修改好后,导入这个注册表。(*该设置重启IE即可生效,不需要重启系统)