当尝试选择 SATA 磁性硬盘(而非 SSD)以实现随机和线性访问的高性能时,哪个应该是主要因素?
例如:具有 16MB 缓存的 10k RPM 驱动器的性能是否优于具有 32MB 缓存的 7200RPM 驱动器
答案1
简短的回答是肯定的。您的硬盘总延迟等于 [寻道延迟] + [旋转延迟]。
10K RPM 驱动器由于旋转速度更快,旋转延迟更小,并且能够更快地从驱动器读取数据。更高缓存的作用是写入。缓存类似于缓冲区。当它从磁盘读取数据时,它会存储最近访问的数据和附近区域的数据,以便更快地访问。这称为时间和空间局部性。如果您的访问模式是多次读取同一个文件或数据存储彼此靠近,则更高的缓存将很有用。
维基百科上有一个不错的页面磁盘缓存。
答案2
这是一个很难回答的问题,并且会受到其他因素的影响,例如 NCQ、命令队列支持。
我认为经验法则是,对于大量小访问、随机 I/O,使用 rpm。对于线性访问,使用缓存。
答案3
取决于缓存命中的可能性。如果您的磁盘上有少量(8/16/32MB)数据,并且您总是读取和写入这些数据,那么您将获得非常高的缓存命中率,因此缓存越大越好。当然,您的操作系统可能能够缓存更多数据,并且使用更快的内存。如果高缓存命中的可能性很低,即您的数据集比磁盘缓存大很多倍,那么我会在给定数据集大小的情况下尽可能缩短随机寻道时间。
不管怎样,如果您需要 270GB 或更少,只需购买一对镜像 Velociraptor 即可;如果您需要更多,则购买一对 Seagate Barracuda 7200.11。我们可以整天讨论这个问题,但这些会帮您解决问题 :)
答案4
别忘了,磁录密度也是影响性能的一个因素。在其他条件相同的情况下,随着驱动器盘片磁录密度的增加,数据传输速率会更快。转速主要与访问时间有关,但一旦找到数据,磁录密度就会成为影响读取数据吞吐量的一个因素。
因此,容量也要大。大容量驱动器往往是每张盘片的面密度更高的驱动器。