Use*_*539 48 storage hard-drive speed benchmarking hardware-failure
我的 4K 速度有什么问题?为什么这么慢?或者它应该是这样的?

这个速度可以吗?为什么我的 4K 速度这么低?
Bob*_*Bob 88
您遇到的是机械 HDD 的典型情况,也是 SSD 的主要优点之一:HDD 具有糟糕的随机访问性能。
在 CrystalDiskMark 中,“Seq”表示顺序访问,而“4K”表示随机访问(一次 4kB 的块,因为单个字节太慢且不切实际1)。
大体上,您可以通过两种不同的方式访问文件。
顺序访问意味着您或多或少地一个字节一个字节地读取或写入文件。例如,如果您正在观看视频,则需要从头到尾加载视频。如果您正在下载文件,它会从头到尾下载并写入磁盘。
从磁盘的角度来看,它会看到诸如“读取块 #1、读取块 #2、读取块 #3、读取字节块 #4” 1 之类的命令。
随机访问意味着读取或写入没有明显的模式。这并不一定意味着真正随机;它的真正意思是“不连续”。例如,如果您同时启动大量程序,它们将需要读取分散在驱动器周围的大量文件。
从驱动器的角度来看,它会看到诸如“读取块 #56、读取块 #5463、读取块 #14、读取块 #5”之类的命令
我已经多次提到块。由于计算机处理如此大的尺寸(1 MB ~= 1000000 B),如果您必须向驱动器询问每个单独的字节,即使顺序访问也是低效的 - 喋喋不休。实际上,操作系统一次从磁盘请求数据块。
一个块只是一个字节范围;例如,块#1 可能是字节#1-#512,块#2 可能是字节#513-#1024,等等。这些块是512 字节或4096 字节大,具体取决于驱动器。但即使在处理块而不是单个字节之后,顺序块访问也比随机块访问快。
顺序访问通常比随机访问快。这是因为顺序访问让操作系统和驱动器预测接下来需要什么,并提前加载大块。如果您请求块“1、2、3、4”,操作系统会猜测您接下来需要“5、6、7、8”,因此它会告诉驱动器读取“1、2、3、4” , 5, 6, 7, 8" 一口气完成。同样,驱动器可以一口气读完物理存储,而不是“寻1,读1、2、3、4,寻5,读5、6、7、8”。
哦,我提到寻求某些东西。机械硬盘的寻道时间非常慢,因为它们的物理布局方式:它们由许多旋转的重金属磁盘组成,物理臂来回移动以读取磁盘。这是一个打开 HDD 的视频,您可以在其中看到旋转的磁盘和移动的机械臂。
图片来自http://www.realtechs.net/data%20recovery/process2.html
这意味着在任何时候,只能读取手臂末端头部下方的数据位。驱动器需要等待两件事:它需要等待手臂移动到磁盘的右环(“轨道”),还需要等待磁盘旋转以便读取所需的数据头。这被称为寻找2。旋转臂和移动臂都需要物理时间来移动,而且它们不能在不冒损坏风险的情况下加速太多。
这通常需要非常非常长的时间,远远长于实际读数。我们所说的 >5ms 只是为了到达请求的字节所在的位置,而字节的实际读取平均为每个连续字节读取大约 0.00000625 毫秒(或每个 512 B 块 0.003125 毫秒)。
另一方面,随机访问没有可预测性的好处。因此,如果您想读取 8 个随机字节,可能来自块“8,34,76,996,112,644,888,341”,驱动器需要“查找 8,读取 8,查找到 34,读取 34,查找到 76,读取 76,...” . 请注意它如何需要为每个单独的块再次搜索?而不是每个连续 512 B 块的平均 0.003125 毫秒,现在是(5 毫秒寻道 + 0.003125 毫秒读取)= 5.003125 毫秒每个块。这慢了很多很多倍。事实上,慢了数千倍。
幸运的是,我们现在有了一个解决方案:SSD。
SSD,即固态硬盘,顾名思义就是固态。这意味着它没有活动部件。此外,SSD 的布局方式意味着(实际上3)无需查找字节的位置;它已经知道了。这就是 SSD 在顺序访问和随机访问之间的性能差距要小得多的原因。
仍然存在差距,但这主要是因为无法预测接下来会发生什么并在要求之前预加载该数据。
1更准确地说,出于效率原因,LBA 驱动器以 512 字节 (512n/512e) 或 4kB (4Kn) 的块为单位寻址。此外,真正的程序几乎从不一次只需要一个字节。
2从技术上讲,seek仅指手臂行程。等待数据在磁头下旋转是寻道时间之上的旋转延迟。
3从技术上讲,由于其他原因,例如磨损均衡,它们确实有查找表和重新映射,但与 HDD 相比,这些完全可以忽略不计......
| 归档时间: |
|
| 查看次数: |
30445 次 |
| 最近记录: |