如何减少高速下载对硬盘的损害.docx
《如何减少高速下载对硬盘的损害.docx》由会员分享,可在线阅读,更多相关《如何减少高速下载对硬盘的损害.docx(10页珍藏版)》请在冰豆网上搜索。
![如何减少高速下载对硬盘的损害.docx](https://file1.bdocx.com/fileroot1/2023-1/22/593d9d94-8262-4fd2-afd8-23b001ea7713/593d9d94-8262-4fd2-afd8-23b001ea77131.gif)
如何减少高速下载对硬盘的损害
个人搜集的一些资料,如果有不对的,还请路过大侠不吝赐教。
目录
一、个人经验总结
二、硬盘磁盘损害原理
三、bt下载原理
四、UT应该如何设置缓存以保护硬盘?
五、设置ut减少硬盘读写及其他操作
六、一些经验
一、个人经验总结。
其实就一句话:
10+M/s的下载速度对电脑没什么损害的;同时设置好软件可以降低电脑硬盘的损耗。
下载文件速度不影响硬盘寿命,硬盘寿命只和文件总大小有关。
关系到硬盘寿命的只是写入、读取总次数。
硬盘正常读取都会以最大速度进行,而这个速度一般在30-100M/s不等,视硬盘情况而定。
ut下载软件都有缓存,文件不管多大下载速度,都会先保存在内存里,然后统一写入到硬盘中。
这就意味着不管是2M的下载速度还是10M的下载速度,都会先写在内存里,内存一般情况不会用坏的。
不管多大下载速度,写入硬盘时速度都一样。
举个例子(缓存200M):
如果2M下载速度,那么每隔100s内存向硬盘写入一次数据,写入时间2s;如果下载速度10M,那么每隔20s写入磁盘一次,写入时间2s。
有什么区别?
基本没区别,因为就算你连续写入磁盘,影响也不大,磁盘就是用来读写的。
加大缓存是王道,缓存越大,磁盘写入的总次数减小,越能保护磁盘。
下载过程中,电脑还要进行其他操作,磁头就得来回移动寻找不同的位置,大缓存也可以减少这种磁头寻址的时间。
个人认为最保护电脑的下载模式(极端情况,不推荐):
1.设置尽可能大的缓存:
2G内存的话,缓存设置1G(如果有其他情况则酌情减少)。
2.每次只下载一个文件,且最大速度下载(下载速度不设上限),提前分配下载文件空间。
3.下载文件的同时,禁止文件上传。
等文件下载完毕了,再统一上传。
4.上传应大速度(道理同下载),但最好能只设置一个连接数(多个连接数必然导致更多磁盘读取次数)。
5.下载上传期间,减少电脑震动、突然断电。
6.只用ut下载。
做到以上几点,硬盘几乎没有损害的。
其损害程度和上网之类的日常使用差不了多少的。
###以下为转载###:
二、硬盘磁盘损害原理
硬盘的最最最基本的工作原理这里就不说了,随便搜一下看看就明白了.
我们先来明确一下硬盘为什么会损坏:
硬盘的主要是由盘片,磁臂+读写磁头,转轴,机械臂杆组成.
1,硬盘不工作时,读写磁头停在盘片上的着陆区,着陆区没有任何数据,这时磁头和盘片是接触的,但是一通电,转轴就开始带动盘片作高速旋转,此时磁头采用传说中的空气动力学原理,飞行在盘片上方,绝对不会与盘片接触,在所谓的"热胀"效应下也是如此,原因还是由于那个"空气动力学",虽然我也不太明白到底是怎么回事.但是,如果在硬盘工作时受到了外力的撞击,可能会导致磁头和盘片发生碰撞,一般来说,如果不幸来了这么一下,你的硬盘就彻底完蛋了.
2,由于磁头读写数据是通过改变磁头电流大小来实现的(这里读和写的过程有着相当的差异,为了方便才放到一起说),频繁读写所导致的不断变化的电流会使磁头老化,但这也在它的正常寿命范围内.
3,发热问题,首先是转轴电机和寻道饲服电机的旋转,硬盘的温度主要是因为这个。
其次,高速旋转的盘体和空气之间的摩擦。
这个也是主要因素。
而硬盘的读写呢?
很遗憾,它的发热量可以忽略不记!
硬盘的读操作,是盘片上磁场的变化影响到磁头的电阻值,这个过程中盘片不会发热,磁头倒是因为电流发生变化,所以会有一点热量产生。
写操作呢?
正好反过来,通过磁头的电流强度不断发生变化,影响到盘片上的磁场,这一过程因为用到电磁感应,所以磁头发热量较大。
但是盘片本身是不会发热的,因为盘片上的永磁体是冷性的,不会因为磁场变化而发热。
总的来说,磁头的发热量和前面两个比起来,是小巫见大巫了。
热量是可以辐射传导的,那么高热量对盘片上的永磁体会不会有伤害呢?
其实伤害是很小的,永磁体消磁的温度,远远高于硬盘正常情况下产生的温度。
当然,要是你的机箱散热不好,那可就怪不了别人了.受高温影响的最严重的是机械的电路,特别是硬盘外面的那块电路板,上面的集成块在高温下会加速老化的。
4,至于频繁地旋转和寻道对机械臂和转轴以及其中的电机所造成的磨损,对机械来说这点耗损虽有,但其实不大。
除非你的硬盘本身就有机械故障比如力臂变形之类的.再下来就是BT对硬盘的影响了.我们将会看到用BT下载时的速度在这里究竟扮演了一个什么样的角色.限速到底是用来干什么的.
恩恩,还是写完好了.
当你一接通电源,硬盘就开始转动,损耗也就同时开始了,然后你在电脑上面进行各种操作,磁头不断的寻道,旋转等待,读写数据.
一般而言,对于以上的情景我们不会把硬盘的损耗单独拿出来强调,并不认为这是一种有"威胁"的行为,因为在我们的潜意识里,这些损耗是正常的,是不可避免的.
与之相反:
震动,灰尘,意外断电,机箱散热差等这些因素可以减少硬盘的正常使用寿命,最坏情况下甚至可能把硬盘一击KO.而这些损耗是额外的,是不正常的,是有威胁的,是可避免的.
现在问题清楚了,只要弄明白BT所带来的硬盘损耗是属于以上两种情况中的哪一种,"BT是否伤害硬盘"这个问题的答案也就出来了.
无论你在电脑上干什么,对硬盘来说,它只是简单的进行盘片旋转,磁头寻道,磁头读数据,磁头写数据这几个动作,损耗也同时伴随着它们而产生,下面我们将对这些动作一一进行分析.
为了更形象的看到BT对硬盘的影响,我们将会拿BT和传统意义上的"无害"的FTP下载做个比较.
1,盘片旋转:
这是产生高温的主要因素,当你接通电源后,盘片便时刻不停的进行高速旋转,这和你在计算机上进行的操作是无关的,无论你干什么,硬盘都自顾自的旋转,对于BT和FTP来说,这是完全相同的.
2,磁头写数据:
无论是BT还是FTP,只要你下载的文件大小相同,那么文件在硬盘上所占的空间也就相同,那么用同样大小的数据填满这些空间所造成的磁头操作---磁头写 的次数也就完全相同.(这里有意忽略了数据错误带来的重复写,因为与整体磁头写相比,这个影响并不大.)
3,磁头读数据:
对于传统的FTP来说,下载文件中几乎不存在磁头读(之所以说是"几乎",是因为在创建新的下载文件的过程中会从硬盘读入相应的目录信息,同样这个动作可以忽略).
而BT则不同了,由于BT是双向的数据传输,不但下载数据,还要上传数据,这就会产生 读硬盘数据---经过一系列处理---封装成网络数据祯---发送给其他下载者,因此BT所产生的 磁头读 的次数要大于FTP,具体次数和你上传的数据总量相关,上传的越多,读硬盘的次数也就越多.因此从纯机械的角度来讲,在上传时间相同的情况下,限制上传速度确实比不限速对硬盘造成的损耗要小.但要是限速太低,那就会产生更大问题---RPC,当前世界对这种疾病尚无有效的治疗办法.
好了,让我们回到正题,上文已经说了与FTP相比,BT会带来额外的磁头读操作,但一般而言,BT同时也会带来比FTP更快的下载速度,这就面临着一个取舍的问题,你不能奢望鱼身上长出熊掌来,必须择其一而从之,就我个人的看法,额外读所造成的损耗是完全可以接受的,它依然能使硬盘的寿命保持在一个相当长的可接受的数字,并不会造成急剧的损耗,而下载速度我是很看重的.
*新闻插播*:
磁头读写的次数与下载/上传速度没有直接联系,只由下载的数据总量和上传的数据总量决定,纯粹的读或写并不会造成太大的损耗,主要损耗是由于频繁地进行读写交叉,即一会读一会写,这会使得磁头电流不断变化,造成磁头老化.下面会对在BT中解决这个问题的方法做一些简要介绍.
4,磁头寻道:
寻道就是指磁头从一个磁道(柱面)移动到另一个磁道(柱面).频繁寻道所带来主要问题是IO效率大大下降,磁头读/写数据的速度是非常快的,时间主要浪费在寻道和旋转等待上.寻道令机械臂移动,通常而言其产生的机械耗损是可以忽略的.
什么时候才会产生寻道呢?
我们知道,文件是以数据块的形式存储在硬盘上的,每个数据块包括1个或多个硬盘扇区,具体大小由相应的文件系统决定,比如对于Linux的ex2文件系统的当前版本而言,一个数据块包含了8个连续扇区(我们目前使用的硬盘普遍单个扇区大小是512B),因此当你新建一个文件时,哪怕这个文件只有1个字节,操作系统也会给它分配一个完整的数据块,既512B*8=4096字节的磁盘空间.至于为什么要这样做实在没办法在这里说清楚,有兴趣的话可以自己去找资料看看.
上面说了数据块的概念,需要理解的是虽然逻辑上一个文件所包含的数据块是连续的,但是在物理磁盘上数据块的分布很可能是不连续的.比如一个包含了4个数据块的文件,很可能它的第1块和第2块是连续的扇区;第3块是在与前两块相同的磁道上,但是间隔了数个扇区;第4块是在别的磁道上(也许说别的柱面上会更严谨一些).那么当你顺序读取这个文件时,首先找到第一块在磁盘上的位置,开始进行磁头读,同时盘面在不停的旋转,当读完第一块时,盘面已经旋转到了第二块的起始位置,于是磁头可以马上进行对第二块的数据读取,现在第二块也读完了,盘面旋转到了第二块的末尾,由于第三块并不在接下来的扇区内,因此无法立即读取数据,只能等待盘面旋转到第三块的开头(这个等待时间比读取数据时间大了几个数量级),然后读第三块,读完,注意:
到现在为止并没有发生磁头的寻道行为.Nowisthetimefortheforthblock,磁盘控制器发现第四块并不在当前磁头所在的柱面,于是操纵机械臂使磁头移动,最终定位到第四块所在的磁道(恐怖的时间消耗),然后继续等待盘面旋转到第四块的起始扇区(当然,运气够好的话,磁头移动完成后的位置可能刚好就是我们要找的地方),再开始读取数据.
以上,对寻道你已经有了基本的了解了,为了更好的说明BT对系统的影响,你必须明白一些基本概念:
进程,多线程,伪并行,缓存,磁盘调度.这些东西下次再说吧.
三、bt下载原理
BT是这么一个东西:
首先你弄一个网络服务器,在上面运行一个称之为BTTracker的BT服务程序,这个程序的作用是把下载同一个文件的大量主机有机地联系起来,具体过程是这样的:
先用一个完整的待下载的文件联合相应的Tracker服务器地址生成一个元信息文件(既.torrent文件),这个.torrent采用B编码的格式生成,B编码就是一种简单高效可扩展的格式拉,具体规则就不详细说了.一个.torrent文件包括了:
announce(声明),Tracker的URL和info(信息).其中announce就是声明这是一个.torrent文件,Tracker的URL就是告诉主机如何找到这个Tracker服务器,而信息则是说明待下载文件的一些信息.先说明一下BT下载的文件是被分成了很多大小相同的块的,这些块的大小是2的幂,随文件增大而增加,比如:
32K,128K,512K等等,在.torrent文件的信息中就包括了所划分块的大小,另外还包括单个文件名和长度等信息,最后有一个可划分的长字符串用来验证各个块的索引,也就是让大家都知道某个块的索引(也可以管它叫编号)具体对应待下载文件中的哪个部分,并保证对应正确.
好了,现在.torrent文件有了,你找个地方把它放上去,再加上相应的说明(无码,人妻之类的东东),然后某个想下这个文件的人看见了,于是他先下载了.torrent文件,然后用BitComet等BT客户程序打开----哦,这里必须要有一个种子(即拥有完整文件的人)连接在服务器上------客户程序会解析.torrent文件,然后根据其中的地址信息来向Tracker服务器发送一个连接请求,服务器收到后,先用一个基于http协议的GET请求来得到下载者的信息,包括:
验证码,peer_id(一个20字节长的字符串,是每个用户开始新下载时随机生成的ID。
这个值也必须是自动转换的。
),ip,端口号,总上传量,总下载量,剩余文件的大小等等,在得到下载者传来的这些信息后,服务器会返回一个应答,包括出错信息(如果发生错误),interval(间隔)对应下载者定期发出请求的间隔秒数;peers列表,就是从当前连接到服务器的所有用户列表中随机挑出的一部分.
接下来用户得到了Tracker的回应(也是采用B编码的格式传递的),BT客户程序解析这个回应,从中得到peers列表,并根据这个表中提供的信息(其他下载者的ip和端口号等),通过peer协议(基于TCP协议)对其他下载者发送连接请求(具体是先把文件分块,然后排队,再发送这个请求队列),经过一系列的验证(麻烦,不说了),最终完成了连接的建立,接下来就是数据的传输了,只下载自己没有的块,并将已完成的块传给别人.这里有两个状态:
关注和堵塞,关注某个下载者就是你希望可以从他那里下东西,而堵塞某个下载者则是在一段时间内不传数据给他,只有在你关注A,并且A不堵塞你时,你才可以从A那里下载.具体关注哪个下载者,堵塞哪个,连接多少等等算法由BT客户程序决定,也有些允许你自己进行相应的定制.这里就不说了.
以上,你已经对BT有个基本的了解了,下面我们来看看BT对硬盘的影响.
四、UT应该如何设置缓存以保护硬盘?
你要想知道怎么设置,首先得明白各项设置有什么作用,然后根据自己的需求进行设置。
下面是我自己的设置
首先,UT中的缓存,是把内存的部分存储空间单独划分出来,把下载或上传的部分数据暂时存储在内存里,通过这个“缓冲区”,尽量减少对硬盘的直接访问(包括写入)次数,达到保护硬盘的目的。
对硬盘的操作次数可以在UT界面中的“速度”标签中查看到,例如下图中的“操作次数”(当然,“操作次数”随着UT连接时间越长,这个数值越大,但可以从比例中观察到读取及写入的频繁度,这个数值即“操作频率”)
1、手动指定缓存大小以覆盖自动设置的缓存大小
这个不用解释了吧,相信看得懂中文的人都能理解。
大小的设置跟自己的条件和需求有关。
一般很多人喜欢设置成自己物理内存的25%,而我则根据自己不同时候的应用有变动,物理内存2G,在无大型软件操作的时候(例如ps、flash等),我一般设置缓存为1000M;当需要看原盘或使用PS等软件的时候,我一般把缓存降到700M,甚至600M;当睡觉挂机的时候,把缓存设置到1500M。
2、不需要缓存时减少内存的使用量
这个也不需要解释了,跟自己的需求和其他设置有关。
3、启用磁盘写入缓存
我们都知道,UT上磁盘的缓存分写入缓存和读取缓存,如下图
如果关闭写入缓存,那么你UT在下载东西的时候,是不经过缓存而直接对硬盘进行写入操作(当然,硬盘本身也有缓寸,只是相对很小,普通硬盘常见的有2M、8M、16M、32M等),这样会造成非常频繁的写入操作,对硬盘是非常不利的。
所以一般情况下此项应打勾。
A、每2分钟写入未使用的区块
B、立即写入已下载完毕的区块
先来看看UT界面中的“区块”标签下的内容
我们知道UT在制作种子的时候,是把一个种子“分割”成很多区块的,每个区块有对应的序号(每个种子的区块总数可以在“常规”标签的“常规”项目里查看,而种子里每个文件的“区块数”可以在“文件”标签查看)。
我们下载的时候,从做种者或或其他下载者中把这些区块“拖”到我们的机子上,当我们把一个种子中所有的区块全部“拖”完,那么就“组合”成一个完美的种子了。
由于种子的大小不同及制作种子设置区块大小不同,所以一个种子的区块数量和区块大小也可能不同。
在实际下载的时候,我们能连接到的做种者或其他下载者的数量不同,被分配到的区块也不同。
上面的截图是我连接到的某个种子的下载情况,该种子每个区块为8M,每个区块又被分为512个“区块数量”(UT中的“区块数”比较复杂,在“常规”标签中的“区块数量”和在“文件”标签中的“区块数”其实意思是一样的。
“常规”标签中的“区块数量”指的是整个种子被“分割”为多少个“包”。
而在“文件”标签中的“区块数”对应的是一个种子里面的文件各有多少个“包”;而在”区块“标签中看到的”区块数量“却以上面两个意思不同,”区块“标签中的”区块数量“指的是每个”包“又被”分割“成更小的“小包”。
如下图的300G韩、日MV蒙古包,整MV有75226个包,对应的每个单独的MV包的数量各不相同。
“区块”标签中的“区块数量”因为我当前在做种,所以无法查看,上不了图了,大家可以参考上图)。
当一个8M的“包”下载进度为100%的时候,即512/512,我们说这个区块已经下载完毕。
这个下载进度我们可以通过后边的“已完成”来查看,例如上图第最上面那个“区块序号”为329的“包”,已完成348,那该“包”的下载进度即为348/512,约68%
这时候我们回过头来看这两个设置“每2分钟写入未使用的区块”、“立即写入已下载完毕的区块”,相信你心中已有答案。
4、启用磁盘读取缓存
上面我们说了,UT的缓存分写入跟读取,当你把你下载完毕的已写入硬盘的数据,分享(上传)给其下载者的时候,这个时候就要进行读盘操作,为了尽量减少对硬盘的读操作,所以此项一般勾上。
另外需要提醒的是,UT的写入、读取缓存中,优先“写入缓存”,假设你设置1000M的缓存总大小,当写入缓存占到100M的时候,读取缓存则占用剩余的900M。
当写入缓存占到300M的时候,读取缓存则只能占用剩余的700M。
写入缓存的占用情况,上面我们已经提到了,跟你在写入缓存上的设置、已连接上的当前下载种子的数量(上边的区块截图只是其中一个种子的情况,如果你有多个种子同时下载,写入缓存占用更高)、连接上的区块数量等有关。
A、如果上传速度较低则关闭读取缓存
上传速度的大小,关系着数据传输的快慢,即意味着读盘操作的频繁程度,如果上传速度较低,相对而言对磁盘的读取操作频率越低。
关闭既意味着不经过读取缓存直接读盘,从保护硬盘的角度看,一般应不关闭。
B、从读取缓存中移除较旧的缓存区块
在读取缓存中,如果勾上此项,那么读缓存的占用马上会直线下降。
但实际上,并不表示较旧的缓存区块没有其他下载者需要此部分数据,其他下载者还有可能需要从你这里下载较旧的区块的数据,如果关闭了,当有其他下载者需要的时候,要重新从硬盘读取这部分数据到缓存里,无形中也增加了读盘的操作。
C、缓存超负荷时增加自动缓存的大小
此项从字面上很容易理解,当缓存不够用的时候,自动增加缓存的大小。
这项跟你之前的设置和实际应用环境有关,如果你熟悉你的设置,知道自己缓存够用,那么此项可以不打勾。
如果你对自己的设置和应用环境变化把握不准,此项最好打勾。
例如我自己,一般同时下载的种子数量不多,最多也就5个(最多时磁盘写入缓存也不过250M左右),现在基本没下载只是挂着上传而已,按我的设置,从实际的使用环境来看,从没有出现过UT缓存超负荷的情况,所以此项勾对我而言不勾也无所谓(就如使用Atom的CPU,没必要上个水冷的散热器一样),但为了给不懂的人一个参考,截图时我特意把这个勾上。
其实这些东西都很简单的,在同样使用环境下(如同时下载种子数量相同,上传、下载速度基本稳定等)自己随便设置几下,对比一下磁盘的写入、读取的操作频率(如第2幅图的红框部分),就知道如何最优设置了~~
懒得学的话,你就按第一幅图设置(缓存大小部分按自己实际内存25%设置)……
五、设置ut减少硬盘读写及其他操作
转载自六维!
!
做了适当删改
(一),常规选项里面注意勾选预先分配磁盘空间,这样要下载的文件都分配好了大小,便于计算剩余空间
(二),重要的缓存部分,默认的实在太小,具体看自己情况设置。
高级缓存部分一定要按图中红框中来设置,缓存大了,不需要每2分钟写入数据,也不需要立即写入下载完成的区块。
这样设置可以显著减少UT写硬盘的次数。
(三),上面的缓存设置针对的是硬盘写操作,可以大幅度减少下载过程中UT对硬盘的写入动作。
但是读取操作仍然很频繁,可再去掉“不需要缓存时减少内存的使用量”前面的勾,还可以去掉“从读取缓存中移除较旧的缓存区块”前面的勾。
目的是将以前上传过的数据保留在内存里面,其他用户再次要求这些数据的时候直接从内存读取,可以减少读取硬盘。
四,这样的设置完全取决于你的内存大小,内存越大(设置的缓存越大)效果越明显,理论上你只要设置了和你上传任务同样的内存(其他占用的内存这里不算),比如上传任务一共是1G,而你设置1G缓存的话----UT只要读取一次硬盘就可以从缓存中进行上传任务了。
(不大严谨,我的意思是这个情况下UT只要对那1G文件通读一遍,全部读取进内存后就不需要再对该文件进行读取操作)。
------------------------------------------------------------------------------------------------------------------------------
其他操作
(一),当你下载一个种子的时候,务必把种子里的所有文件全部下载
很多人问:
我UT上显示我在做种,为什么没有显示该种子在做种,而是显示在下载
这是因为你没有的把该种子的文件全部下载完,比如说这个种子有10个文件,总大小为4.8G,你只选择了其中9个文件下载(如4.77G),当你下载完这9个文件的时候,UT是显示已经下载100%且在做种,但实际上只看到你下载了9个文件,所以不会把你当成做种,而只认为你还没下载完毕。
当然也不会有积分。
那么可能有人会问,当初我的确没有全部下载完,现在我想补齐,怎么补?
你可以在UT上点一下这个种子,然后点UT下面的“文件”标签(就是UT界面的下半栏),对着完成率没有100%的文件点右键,选择一个优先级,然后就会开始下载。
当你所有的文件全部下载为100%的时候,就会把此种子记为上传。
(二),我打开UT下载的时候,为什么经常要进行长时间的文件校验?
这通常是由于之前你非正常关闭UT造成的,想避免此问题,请在关闭UT前,把所有任务全部停止,然后查看UT下面的“速度”标签,在“显示”下拉菜单中选择“磁盘统计”,如果缓存全部释放(清0),这时候关掉UT,下次就不会进行文件校验。
(三),我直接关闭UT会有什么影响?
因为Tracker不是实时更新的,所以你不先停止任务的话,可能会有一段时间的数据没有反馈给服务器,所以你在论坛上的流量统计可能会少了。
再就是因为没有先停止任务而直接关闭UT,导致下次打开UT时会进行文件的校验。
可能有些人会说,我一直都没有正常关闭UT,可是为什么有时候就不会进行校验呢,关于这个问题,说起来就比较复杂了,看你有没有耐心看下去。
首先来看缓存设置。
假如你把“启用磁盘写入缓存”的勾去掉,那么你从网上下载的数据就没有经过缓存而直接写进硬盘里,你怎么关UT下次都不会校验。
而当你勾选了“启用磁盘写入缓存”,下面还有两项也很关键,就是“每2分钟写入未使用的区块”和“立即写入已下载完毕的区块”,这两项勾和不勾,影响很大。
我们来看缓存设置,在UT中设置的缓存是包括读、写两项的总和(如你设置1000M,那么读、写两项总共加起来就不会超过10000M),这两项的比例说起来比较复杂,一般来说读取缓存可以撑满,但写入缓存和你下载的种子有关。
这里我们需要注意的只是写入缓存。
-----------------------------------------------------------------------------------------------------------------------
分析“每2分钟写入