为什么硬盘读写速度波动会这么大?

今天转移一些东西结果发现…………


为啥波动会这么大啊!!!
还有一次,上面那个波形是很规则的周期函数……为啥捏?

刚刚又转移了一些……发现…………OMG……

求解释……

推荐  (0) | 17人关注关注
14个答案
52 0

fu-80DIYER,摄影师,电容技术顾问

2014-07-30 23:49

零碎文件的读取和大文件读取的速度是不一样的,零碎慢,大文件快,容易到达速度顶峰。
所以测试存储器的读取要看两个参数,一个是连续读取,一个是碎片文件读取。
简单来说,
小文件需要你不断的寻找,命中,读取,再寻找,命中,读取,中间花了很多时间,而且数据少,读取速度也不容易提升到极限,总的来说没有多少时间用在读取上。
大文件只要寻找,命中,就要连续的读取,花在读取的时间比较长,所以速度就容易提高一些,大概就这意思。

45 1

lizhidx计算机科学硕士,程序员

2014-07-31 01:46

快递送件,假设一天要送一车,昨天一车的东西都送到一个地址,一小时就送完了——开过去卸了货完事,今天的一车要送200个地址——快递员已经生活不能自理了

10 0

首先要了解机械硬盘的性能特点。机械硬盘是依靠刺头在盘片的不同轨道(磁道)上读取数据。要读取数据磁头首先要移动到相应轨道,然后等待盘片转动,直到数据所在位置转到磁头正下方才能开始读取。所以读取数据包括两个延迟:

  1. 寻道延迟 (seek time)
  2. 旋转延迟 (rotation latency)


其中寻道延迟要远远大于旋转延迟,一般台式机的寻道延迟是旋转延迟的2倍或者更多。

第二,硬盘上的数据是分块保存的,这点机械硬盘和SSD都是一样。数据块可能在一个磁道上,也可能在不同磁道上。如果数据在不同磁道,每块的读取就要增加一次寻道延迟和一次旋转延迟。这就是我们平时说的数据碎片化,也就是问题中数据读取慢的原因。

各个操作系统都有磁盘整理工具,通过把一个文件的各个数据块移动到一个磁道来整理,从而优化读取速度。

另外除了读取,写入也有一样的问题,特别是硬盘比较满的时候,虽然空间还够,但是碎片化比较严重,硬盘需要在各个磁道寻找可以写入的空间,也会造成频繁寻道而降低速度。

@ fu-80 说的情况,如果defrag做的好,小文件也可能在同一磁道,但是如果碎片化严重,大文件的各个块也未必都在一个磁道,所以还是看硬盘的数据碎片化情况。

2 0

没空的人懂一点计算机和生活上的事情,认真灌水。

2014-07-31 22:37
支持者: 水云知君 一炷香人

我来秀一发,硬盘上的压缩包(大小为930M)解压到内存上的速度。

貌似文件是连续的时候可以忽略寻道这个问题了。
再加上内存条的写入速度本来就快。

————————————————
附:图中文件下载地址:
http://pan.baidu.com/share/link?shareid=180566&uk=1463073700
别人的链接,不是我分享的。

0 0

实际上还有一个..如果之前内存中存在该文件.这速度基本就是写入的速度.
平常是读取和写入共同进行

0 0

因为有时候连个文件的物理地址相隔很远,磁头需要转一圈才能读。文件的物理地址并非连续的,当能够连续读取的时候快,非连续的时候就要等待磁盘旋转了

0 0

还有一点。如果是机械硬盘,磁盘外圈的信息读写更快,内圈的信息读写更慢。

PS:系统盘C主是在外圈,读写最快的。如果你这样划分盘符,是就能最合理地利用硬盘

1、C为系统盘,外加安装最最常用的软件
2、D为程序盘,安装软件
3、E为文件盘,存放所有的文件,包括视频等
4、F为备份盘,存放*.gho文件,用于系统备份。

这样的安排,基本保证了最常用的信息放在读取最快的区域,最不常用的信息,放在最慢的区域

0 0

补充一点,系统会为每个文件(如果打开时没指定直写标记的话)开辟一段内存做缓存来加速写入,但这段空间满了就要写入到硬盘。下面的图先快后慢就是因为这个。
小文件慢是因为硬盘寻道特别慢(sata开启ncq可以优化算法来加速,但仍受制于机械)。文件多、磁盘碎片多都会让硬盘频繁寻道,小文件复制时还要到处跳来创建文件记录。
周期变化可能是由于缓存定期刷新或者写满后刷新。其他程序定期读写文件也会影响复制文件速度
关于缓存管理器可以在网上查到相关机制,当然,不会太简单。但大体功能就是预测读取位置预取+合并加速小写入。
它的预取和写入都是在系统线程中完成的,用户层看不到它的具体活动过程

0 0

机械硬盘的数据是分区分轨道记录的,如果文件写入的时候磁盘空间比较多而且连续,那以后移动的时候也会相应的快一些,原理楼上有细说。
第二张图应该是按了复制之后过了一会才点的粘贴吧,这时候系统会预先把一部分内容先写进内存,这样在粘贴的时候会有一段比较快的时候。当内存的数据写完了,硬盘就要一边读取一边写入,这样速度自然会慢很多。
同一个分区移动文件没有这种现象,因为文件没有移动,只是改变了分区表里的一段记录文件位置的数据。
P.s.你这硬盘速度也太慢了吧

0 0

路程888死理性派-预备役程序猿

2014-08-02 03:00

我来加一个原因...
如果你读或者写和系统盘在一个物理磁盘
那么因为磁盘队列变长+寻道的原因....系统对系统文件和虚拟内存文件的读写也会影响复制粘贴的速度...

0 2

没人吐槽一下嘛?这个速度已经慢到可以换个新硬盘了吧~

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2018] 6282-492号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区