Andrew Scagnelli Asked: 2009-06-20 04:09:05 +0800 CST2009-06-20 04:09:05 +0800 CST 2009-06-20 04:09:05 +0800 CST 硬盘速度:RPM 与缓存 772 在尝试为随机和线性访问选择高性能的 SATA 磁性硬盘驱动器(而不是 SSD)时,哪个应该是主要因素? 例如:具有 16MB 缓存的 10k RPM 驱动器是否比具有 32MB 缓存的 7200RPM 驱动器性能更好 performance hardware hard-drive performance-tuning 8 个回答 Voted Best Answer Nate 2009-06-20T04:23:38+08:002009-06-20T04:23:38+08:00 简短的回答是肯定的。您的总硬盘延迟是 [搜索延迟] + [旋转延迟]。 10K RPM 驱动器由于其更快的旋转速度而具有更小的旋转延迟,并且还能够更快地从驱动器中读取数据。更高的缓存将用于写入。缓存类似于缓冲区。当它从磁盘读取数据时,它将存储最近访问的数据和附近的数据,以便更快地访问。这称为时间和空间局部性。如果您的访问模式使得您经常读取同一个文件或数据存储在彼此附近,则更高的缓存将很有用。 维基百科在磁盘缓存上有一个不错的页面。 Chopper3 2009-06-20T04:22:46+08:002009-06-20T04:22:46+08:00 取决于缓存命中的可能性。如果您的磁盘上有少量 (8/16/32MB) 的数据,并且您一直在读取和写入,那么您将获得非常高的缓存命中率,因此缓存越大越好。当然,您的操作系统可能能够缓存更多,并且也可以使用更快的内存。如果高缓存命中的可能性很低,即您的数据集比磁盘缓存大很多倍,那么在给定数据集大小的情况下,我会尽可能缩短随机寻道时间。 无论哪种方式,如果您需要 270GB 或更少的空间,只需购买一对镜像的 Velociraptor,如果需要更多,则购买一对 Seagate Barracuda 7200.11。我们可以整天围着它跳舞,但这些会帮你解决的:) Dean Smith 2009-06-20T04:23:31+08:002009-06-20T04:23:31+08:00 这是一个很难回答的问题,并且会受到其他因素的影响,例如 NCQ、命令队列支持。 我认为一个经验法则是,对于大量小访问、随机 I/O,选择 rpm。对于线性访问,请使用缓存。 Matt Simmons 2009-06-20T04:24:01+08:002009-06-20T04:24:01+08:00 最终,这取决于您使用的数据。缓存提高了一次又一次访问的东西的性能,例如网络服务器上的文件。它还提高了写入性能,因为只需将数据写入缓存,然后在磁盘可用(或缓存已满)时将其假脱机到磁盘。较高的 RPM 会改善“随机”访问(例如,查找时间),而这正是数据库所需要的。 我会选择更高的 RPM,一切都是平等的。 Chris W. Rea 2009-06-20T05:31:09+08:002009-06-20T05:31:09+08:00 不要忘记面密度也是性能的一个因素。在其他条件相同的情况下,随着驱动器盘片的面密度增加,您将实现更快的数据传输速率。旋转速度主要与访问时间有关,但是一旦数据被定位,面密度就成为读取数据吞吐量的一个因素。 所以,也要加大容量。大容量驱动器往往是每个盘片具有更高面密度的驱动器。 Jason Tan 2009-06-20T04:25:40+08:002009-06-20T04:25:40+08:00 这取决于您的数据及其使用方式。如果您有不经常重复使用的数据,我认为快速旋转会更好,因为缓存只有在命中时才真正有帮助。如果您的数据发生了很大变化,那么缓存不会给您带来太多帮助。 James 2009-06-20T20:55:58+08:002009-06-20T20:55:58+08:00 我不知道缓存大小被记录为对性能有任何重大影响,当您比较几十兆时,驱动器正在缓存到由操作系统缓存的 gig 或更多,很容易看出原因。 正如其他答案所说,旋转速度具有巨大的影响。 Koli 2010-08-04T21:05:59+08:002010-08-04T21:05:59+08:00 我想说,这主要取决于你想用你的硬盘做什么。如果您将其用作引导,则使用缓存!如果您使用它来存储,请选择 RPM!如果你在中间,它会更复杂,更多的是一种感觉。但我认为人们应该问自己的主要问题是:你会从它开始吗?如果是,那么你的问题得到了回答^^
简短的回答是肯定的。您的总硬盘延迟是 [搜索延迟] + [旋转延迟]。
10K RPM 驱动器由于其更快的旋转速度而具有更小的旋转延迟,并且还能够更快地从驱动器中读取数据。更高的缓存将用于写入。缓存类似于缓冲区。当它从磁盘读取数据时,它将存储最近访问的数据和附近的数据,以便更快地访问。这称为时间和空间局部性。如果您的访问模式使得您经常读取同一个文件或数据存储在彼此附近,则更高的缓存将很有用。
维基百科在磁盘缓存上有一个不错的页面。
取决于缓存命中的可能性。如果您的磁盘上有少量 (8/16/32MB) 的数据,并且您一直在读取和写入,那么您将获得非常高的缓存命中率,因此缓存越大越好。当然,您的操作系统可能能够缓存更多,并且也可以使用更快的内存。如果高缓存命中的可能性很低,即您的数据集比磁盘缓存大很多倍,那么在给定数据集大小的情况下,我会尽可能缩短随机寻道时间。
无论哪种方式,如果您需要 270GB 或更少的空间,只需购买一对镜像的 Velociraptor,如果需要更多,则购买一对 Seagate Barracuda 7200.11。我们可以整天围着它跳舞,但这些会帮你解决的:)
这是一个很难回答的问题,并且会受到其他因素的影响,例如 NCQ、命令队列支持。
我认为一个经验法则是,对于大量小访问、随机 I/O,选择 rpm。对于线性访问,请使用缓存。
最终,这取决于您使用的数据。缓存提高了一次又一次访问的东西的性能,例如网络服务器上的文件。它还提高了写入性能,因为只需将数据写入缓存,然后在磁盘可用(或缓存已满)时将其假脱机到磁盘。较高的 RPM 会改善“随机”访问(例如,查找时间),而这正是数据库所需要的。
我会选择更高的 RPM,一切都是平等的。
不要忘记面密度也是性能的一个因素。在其他条件相同的情况下,随着驱动器盘片的面密度增加,您将实现更快的数据传输速率。旋转速度主要与访问时间有关,但是一旦数据被定位,面密度就成为读取数据吞吐量的一个因素。
所以,也要加大容量。大容量驱动器往往是每个盘片具有更高面密度的驱动器。
这取决于您的数据及其使用方式。如果您有不经常重复使用的数据,我认为快速旋转会更好,因为缓存只有在命中时才真正有帮助。如果您的数据发生了很大变化,那么缓存不会给您带来太多帮助。
我不知道缓存大小被记录为对性能有任何重大影响,当您比较几十兆时,驱动器正在缓存到由操作系统缓存的 gig 或更多,很容易看出原因。
正如其他答案所说,旋转速度具有巨大的影响。
我想说,这主要取决于你想用你的硬盘做什么。如果您将其用作引导,则使用缓存!如果您使用它来存储,请选择 RPM!如果你在中间,它会更复杂,更多的是一种感觉。但我认为人们应该问自己的主要问题是:你会从它开始吗?如果是,那么你的问题得到了回答^^