POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 7661|回复: 18
打印 上一主题 下一主题

SSD和机械盘寻道的误区

[复制链接]
跳转到指定楼层
1#
发表于 2011-3-8 10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhdick 于 2011-3-8 11:08 编辑

很多认为SSD无用的人认为,SSD寻道0.1,比普通盘机械12-15MS快了10几MS而已。
一个文件10几MS,系统启动载入也不过一千多个文件,想必速度不会快很多。

BUT,不是一个文件10MS的问题。

问题在于很多单个文件是放在很多扇中,所以一个文件就需要至少一次寻道和很多次的寻扇区(潜伏)。

目前大多数硬盘扇区都是512字节,高级格式化是4K。

一个1MB的的文件高级格式化下,寻道至少一次,还要寻扇区256次,如果数据是连续存放则会减少寻道次数(磁盘碎片整理就是这个原理),而512字节的要寻扇区几次?
2#
发表于 2011-3-8 10:28 | 只看该作者
本帖最后由 wxm 于 2011-3-8 10:36 编辑

一般我们说的"寻道"是指寻道+寻扇区吧
寻道是占大头的(磁头臂要移动) 之后寻扇区就是小头了
连续的扇区更是不用"寻" (只需寻开头那个1次 之后属于连续传输了)

小文件基本是连续存放的 一个小件 跨多条磁道且扇区不连续? 基本上不可能吧..
大文件也散不了几份 但每一份也应该是在连续扇区上的

所以小文件基本还是一次"寻道"而已
回复 支持 反对

使用道具 举报

3#
发表于 2011-3-8 10:41 | 只看该作者
另外寻道要要看从哪儿寻到哪儿

寻离当前磁头比较近的道 甚至就是顺续的下一条 那其实也是很快的

你用hdtune把测试范围缩小到20G 就是最外圈的区域 你也发现寻道快了很多

但如果磁头处于最外圈 要寻内圈的某条道 那就慢了
回复 支持 反对

使用道具 举报

4#
 楼主| 发表于 2011-3-8 10:55 | 只看该作者
本帖最后由 zhdick 于 2011-3-8 11:06 编辑
wxm 发表于 2011-3-8 10:28
一般我们说的"寻道"是指寻道+寻扇区吧
寻道是占大头的 之后寻扇区就是小头了
连续的扇区更是不用"寻" (只 ...


是的
扇区是在磁道上面的最小存储单位,一个磁道有N个扇区。
一般来说,寻道是就是寻找磁道(寻道时间)。找到磁道后开始读写就是找扇区了(潜伏时间)。

关键在于很多文件不是连续存储在连续扇区。看起来在安装一个软件的时候,系统后台也有数据写入(日志等等),而不仅仅是所安装的那个程序文件。

磁盘碎片整理能很好的解决这个问题,整理后能明显感觉速度变快,就是因为把连续数据放在连续扇区了,从而避免了寻道,缩短了潜伏时间,但潜伏仍是不可避免的。

4K格式化后,1MB的文件读取,需要访问256个扇区。寻道12MS,访问第一个扇区潜伏3MS,之后的255个按照0.2MS算需要51MS

则一共需要12+3+51MS=66MS,约0.06秒。


SSD的寻道0.1,潜伏0.1。访问1MB所需时间只有25.6MS。少了一半时间。文件越大,越多则优势越明显。
假设系统附带程序启动需要400个 3MB的文件,机械盘需要的时间为72秒,SSD只需要30秒



ACDSEE看图软件中有载入时间信息。可以参考这个信息。

回复 支持 反对

使用道具 举报

5#
发表于 2011-3-8 10:58 | 只看该作者
Seek在SSD上最好别翻译成“寻道”,寻道是温彻斯特硬盘的概念;在SSD上应该翻译为“获取”比较好。
回复 支持 反对

使用道具 举报

6#
发表于 2011-3-8 11:02 | 只看该作者
本帖最后由 wxm 于 2011-3-8 11:32 编辑

比如一个硬盘介绍
一项是 平均寻道时间 8.9ms
一项是 平均潜伏期 4.2ms
前者可能就是磁头移动的时间
后者就是找扇区的时间(7200转硬盘 转一圈需8.33ms 所以平均起来半圈4.2ms能找到目标扇区?好像挺通的)
加起来才是平均存取时间(理论的)
实测再稍慢点 因为实测是用一定的数据量测的(512b 4k 64k) 传输这些数据需要少许时间 可能还有少许别的时延(数据从南桥到cpu到内存的时延)
回复 支持 反对

使用道具 举报

7#
发表于 2011-3-8 11:06 | 只看该作者
本帖最后由 wxm 于 2011-3-8 11:13 编辑
zhdick 发表于 2011-3-8 10:55
是的
扇区是在磁道上面的最小存储单位,一个磁道有N个扇区。
一般来说,寻道是就是寻找磁道(寻道时间 ...

"之后的255个按照0.2MS算需要51MS"

不是这样算的吧 连续读完整条磁道(貌似起码上万的扇区)才需要8.33ms而已(7200rpm的话)
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2011-3-8 11:12 | 只看该作者
wxm 发表于 2011-3-8 11:06
"之后的255个按照0.2MS算需要51MS"

不是这样算的吧 连续读完整条磁道才需要8.33ms而已(7200rpm的话)

按数据算是如此,不过是没有考虑验证数据是否为需要的。

至于我说的是不是完全正确,我想表达的意思大家应该能看明白
回复 支持 反对

使用道具 举报

9#
发表于 2011-3-8 11:21 | 只看该作者
本帖最后由 wxm 于 2011-3-8 11:22 编辑
zhdick 发表于 2011-3-8 11:12
按数据算是如此,不过是没有考虑验证数据是否为需要的。

至于我说的是不是完全正确,我想表达的意思大 ...

你应该是算错了 假设100m/s持续
读连续的4k扇区 平均每个是0.04ms吧
512b扇区就只有0.005ms而已
回复 支持 反对

使用道具 举报

3332243 该用户已被删除
10#
发表于 2011-3-8 11:23 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

11#
发表于 2011-3-8 11:26 | 只看该作者
本帖最后由 wxm 于 2011-3-8 11:30 编辑
3332243 发表于 2011-3-8 11:23
那就不是随机了
而且实际应该不是只寻一次!如果那样的话差距不会那么大

读一个小文件应该就是一次
可能读完磁头移走了 不久又要回来写
其实看IO次数就成了 次数多了那差距就出来咯
回复 支持 反对

使用道具 举报

3332243 该用户已被删除
12#
发表于 2011-3-8 11:38 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

13#
发表于 2011-3-8 11:39 | 只看该作者
本帖最后由 wxm 于 2011-3-8 11:42 编辑
3332243 发表于 2011-3-8 11:38
我的思想就是读一个文件磁头就得一次!就是读一个4K文件
寻道时间+潜伏占了总时间9成甚至9.5成以上!只是 ...

没错啊

但LZ内容说一个小文件也要几百次或者n多次呢
回复 支持 反对

使用道具 举报

14#
发表于 2011-3-8 12:26 | 只看该作者
本帖最后由 wxm 于 2011-3-8 13:16 编辑

无论多乱的硬盘 小文件都基本是连续的

磁盘整理减少的不是单个小文件的寻道次数
而且它让不同文件的物理距离更近——提高了寻道(因为大量IO时磁头移动距离短)
而且让文件趋向前段(外圈)——提高了持续速度,提高了寻道(同样是因为磁头移动距离短了 因为相同容量处于外圈时占用的磁道更少、更近)

回复 支持 反对

使用道具 举报

15#
发表于 2011-3-8 12:45 | 只看该作者
SSD没有磁道可寻,它是一种区块寻址,和内存的寻址应该是类似的吧。
回复 支持 反对

使用道具 举报

16#
 楼主| 发表于 2011-3-8 13:50 | 只看该作者
wxm 发表于 2011-3-8 12:26
无论多乱的硬盘 小文件都基本是连续的

磁盘整理减少的不是单个小文件的寻道次数

你的思路不对。硬盘存储都是从外圈开始向里面存储的。
假设存储的文件为1MB,占用了256个4K扇区,之后删除。再存储一个2MB的文件。
磁盘是先把其中的一部分写入刚才空白的256个扇区,然后接着最后一个有数据的扇区继续存储256个扇区。就是2MB被分成2个1MB分别储存了。

磁盘碎片整理就是把该文件从不同扇区甚至磁道移动到连续的磁道和扇区来减少寻道和潜伏时间。


你说的将文件移到外圈等等是一些软件的特殊优化功能,而不是磁盘碎片整理的本身。
某些磁盘优化软件会记录软件启动时调用的文件次序,再这些文件按照次序连续存放在连续扇区,以减小寻道和潜伏提高速度。
回复 支持 反对

使用道具 举报

17#
发表于 2011-3-8 14:05 | 只看该作者
zhdick 发表于 2011-3-8 13:50
你的思路不对。硬盘存储都是从外圈开始向里面存储的。
假设存储的文件为1MB,占用了256个4K扇区,之后删 ...

也有道理
从几率上说也是大文件遇到碎片机会大
小文件不容易难遇到被隔开的情况

就像我的系统盘总共40000多个文件 好久好久不做整理 目前只有32个文件 碎片79
影响非常有限


性能的提高我确实认为大部分是从文件集中到外圈带来了的
因为删删加加 数据就不集中了(看图就知道)
其实我觉得不整理也差不了多少..

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

18#
发表于 2011-3-8 14:43 | 只看该作者
这个帖子的讨论才是我们所需要的....而不是SSD值不值得的问题.....那根本就不是问题
SSD的精义在于获取数据地址的速度是HDD寻道速度的几十倍上百倍,所以SSD能够在4K随机读写时,单位时间读写操作上万次,远远超过HDD的不到百次。

SSD对比HDD有以下不同
1.极大地影响到随机读写的速度,影响着使用者日常操作的感受,因为日常操作95%以上的时间在对付512kb以下的零碎读写
2.HDD在频繁寻道的时候,也就是发出读写噪音的时候...高转速HDD这点尤为明显。而SSD根本没有声音。

速度和噪音、震动,三方面都是与用户使用体验息息相关的,这三方面SSD完胜。
持续读写方面....真的用了SSD就发现了,做系统盘的时候,很少有大的完整文件持续读写的,而实际要拷贝的文件,经常是夹杂着许多小文件,这时因为读写小文件的优势,使得SSD在整个拷贝文件并不比HDD差,而且持续读写能力强的SSD,拷贝文件是比两块HDD组raid0还要快的。

SSD需要纠结的只有价格和容量....
寿命都根本不是问题
回复 支持 反对

使用道具 举报

19#
发表于 2011-3-8 15:41 | 只看该作者
我发现我的系统盘不碎是因为没有缓存 程序都放D盘 程序配置roaming目录也改到D盘了

D盘就碎了 qq有个8m的文件碎了500多片
不过100k以下的文件多数碎2-4片而已
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-2-3 04:24

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表