前言:
随着我国民用光纤宽带的普及,大家使用的网络带宽也越来越大。曾经以为家里有100M的宽带已经快上天了!但是现在许多雷友家里用上了500M~1000M的宽带也并不稀奇。
可是在更大的带宽给我们带来更快下载速度的同时,也给下载带来了新的问题:许多电脑的”磁盘读写性能”跟不上了,尤其是使用机械硬盘的电脑!
当下载速度非常快的时候,使用机械硬盘的电脑更容易因为磁盘过于繁忙发生下列问题:
-
下载速度突然变慢
-
电脑响应变慢
-
下载进度卡在99.9%
当这些问题发生时,您只需要耐心等待磁盘完成数据写入即可。
但是这到底是怎么回事呢?
下载速度突然变慢:
当迅雷在下载文件时,为了避免频繁的往磁盘中写入数据,引发磁盘读写性能下降。因此迅雷的下载引擎会先将下载得到的数据保存到电脑的内存里。待积攒到足够多的数据后,再一起写入磁盘。这就是迅雷下载引擎的”磁盘缓存”功能。
“磁盘缓存”就像一个水池,下载数据就是在向池内注水,而将数据写入磁盘则是把水池内的水放掉。
一直以来,由于通过网络下载数据的速度比数据写入磁盘的速度慢,所以可以确保这个池子里的水不会溢出。但是假如池水溢出了,就会造成问题。体现在迅雷的下载引擎上,就会造成程序崩溃等异常。
近年来随着网络带宽的增加,已经开始出现下载数据的速度比数据写入磁盘速度更快的情况。
此时如果不对下载数据的速度做任何限制,水池里的水是注定要溢出的。
我们都不希望迅雷的下载引擎发生崩溃,因此当迅雷的下载引擎发现,磁盘缓存已经快要满出来的时候,就会自动降低下载数据的速度。让已下载的数据尽快写入磁盘,等腾出足够的缓存空间后,再恢复原来的下载速度。
如果你的电脑正在使用机械硬盘,并且在高速下载时,出现下载速度突然变慢的情况。很可能就是这个原因。
电脑响应变慢:
要深入了解这个问题,我们必须从”机械硬盘”的”先天缺陷”说起。让我们先看一张机械硬盘拆解图。
“机械硬盘”在进行数据读写操作时,上图中的”音圈马达”会转动”磁头摆臂”,使位于摆臂尖端的”磁头”在距离”磁盘”表面约1纳米的高度高速飞行,从而在”磁盘”上读写数据。
看似光洁如镜的磁盘表面,实际上是由环环相扣的”磁道”所组成的。当需要读写的数据存放在磁盘的不同”磁道”时,磁头摆臂会在磁盘上来回摆动,使”磁头”飞到存放对应数据的磁道上空,这个动作被称为”寻道”。
由于磁头摆臂是由音圈马达控制的纯机械结构,从发出指令,到摆臂完成寻道的响应时间约10毫秒。相比之下机械硬盘的磁头读写当前位置数据的时间,仅为寻道时间0.1%!因此频繁的寻道操作将会拖慢机械硬盘的响应速度。
这个”先天缺陷”造就了机械硬盘的一大特点【“随机读写”比“顺序读写”慢很多】
比如顺序读写时,速度可能达到100MB/s,但是随机读写时,可能只有500KB/s,仅为顺序读写时的0.5%!
理想状态下,当迅雷正在高速下载数据时,机械硬盘会全力工作,努力将迅雷下载的数据写入磁盘中。但实际上电脑中并非只有迅雷一个软件在运行。包括操作系统在内的其它软件也会产生读写磁盘的需求。而其它软件要读写的磁盘数据,往往处于其它磁道上,这就会频繁的触发机械硬盘的”寻道”操作。
如此一来,机械硬盘就掉进了“随机读写”的泥潭中,不但会使迅雷写入数据的速度变慢,也会造成用户在操作电脑上的其他软件时,整体响应速度变慢。
下载进度卡在99.9%
许多雷友并不知道,迅雷其实会在下载数据的过程中,实时对下载到的数据进行校验,避免下载到错误数据。而校验数据的过程是需要一定时间才能完成的,好在大多数情况下,下载数据的速度比校验数据的速度慢。所以当数据下载完成时,校验数据的过程也能同时完成。下载任务就能顺利完成。
但是当网络下载数据的速度比校验数据的速度更快时,等待校验的数据就会产生积压。下载的文件越大,下载速度越快,积压的待校验数据就会越多。
此时如果再叠加上前面两个问题,校验积压数据的速度就会变得更慢了。
当一个下载任务的文件数据已经下载完成,但还积压了大量未经校验的数据时,迅雷的下载引擎就会让任务进度停留在99.9%,直至所有下载到的数据都校验通过后,才让任务下载完成。
所以当你观察到迅雷原本有很快的下载速度,却在任务进度达到99.9%时突然没了速度,同时迅雷上出现”磁盘繁忙”的提示,那么很可能就是这个原因。
不过需要说明的是,可能导致下载进度卡在99.9%的原因还有很多,这只是其中的一种原因。
结语:
大家了解到这些问题的成因之后,应该不难发现”机械硬盘”已经成为电脑整体性能的瓶颈。纵使你的电脑CPU再快,内存再大,网速再高。最终都会被”机械硬盘”所拖累。
好在近期固态硬盘的价格一直在下降,正在逐渐接近1元/G,性价比越来越突出,希望各位仍在使用机械硬盘的雷友,能够早日换上固态硬盘,就能大幅降低“磁盘繁忙”发生的几率!
补充说明:
注意到部分雷友将新版迅雷X上出现的“磁盘繁忙”提示,误解为新版本迅雷X做了某种限制,特此加以说明:
迅雷X是通过Windows的任务管理器获取的“磁盘活动时间”,通过这个参数可以准确的衡量磁盘的繁忙程度。
连续3秒磁盘活动时间超过90%,迅雷X就会提示磁盘繁忙。
您在使用以往版本的过程中也会遇到磁盘繁忙导致的问题,由于以往版本中缺乏说明,使您不一定能够察觉到问题发生。
迅雷X出现的“磁盘繁忙”提示,只是如实反映了磁盘的当前状态,并对可能发生的问题加以说明,并非新版迅雷X做了某种限制。
2019-4-19更新补充说明:
看了许多用户的评论,都提出了同一个问题“为什么迅雷比其它下载工具的磁盘性能占用更高?”
这是个很好的问题,尽管解释起来可能会稍微有点复杂。
首先,我们要知道,所有的数据传输过程都是不一定可靠的,为了确保数据接收方得到准确的数据,都会设计“数据校验”的机制。
因此所有的下载协议,包括但不限于“迅雷P2SP、BT、电驴”等等都有“数据校验”机制。
这些下载协议的数据校验过程都差不多,都是把每个文件分为N个文件块,然后计算出每块文件的特征值进行比较,每块文件的特征值一致,就认为接收到的数据是正确的,不一致就是错误的。读取文件计算特征值的过程就会占用磁盘性能。这是背景。
迅雷的下载速度之所以比其它下载工具更快,主要是因为迅雷实现了“多协议融合下载加速”,也就是说当你使用迅雷下载一个文件时,迅雷会同时通过“迅雷P2SP、BT、电驴”等多个下载协议,同时下载数据,从而获得比单一协议下载工具更快的下载速度。
这样做就相当于同时运行三个下载工具,去下载同一个文件。虽然下载速度更快了,但是也会因为需要同时校验三种下载协议的数据,使得磁盘性能占用大幅增加。
所以大家拿“浏览器下载、百度网盘、Steam、uTorrent”等等单一协议下载方式来跟迅雷做比较,是不合适的。