您是否应该禁用 SSD 的页面文件?

您是否应该禁用 SSD 的页面文件?

我一直在读这个问题,里面有很多有用的信息。

但假设您有足够多的 RAM,我认为应该在 SSD 上禁用页面文件以延长使用寿命。我知道崩溃时您会丢失核心转储,但没多少人需要这些信息。

据我所知,如果没有页面文件,当您达到 RAM 限制时,可能会触发磁盘抖动。但对于 SSD 来说,没有抖动的概念,读取速度很快。

你们有什么感想?

答案1

但假设你的 RAM 足够多,我认为应该禁用 SSD 上的页面文件以延长使用寿命。我知道崩溃时核心转储会丢失,但没多少人需要这些信息

这听起来更像是过早优化。您还没有讨论计划使用哪些 SSD,而且如果不实际查看服务器工作负载和计划的 SSD 数据表,您就无法知道页面文件对 SSD 的使用寿命有何影响。

互联网和 Server Fault 上都存在大量关于 SSD 使用寿命较短的错误信息。早期型号的 SSD 可能存在问题,USB 闪存驱动器也肯定会开始降级,但企业级 SSD 具有更好的磨损均衡算法,有些企业级 SSD 会利用备用闪存来提高性能和减少磨损。

Intel X25-E 驱动器例如,声称 32 GB 驱动器的随机写入持续时间为 1 PB。如果您不停地使用写入接口(200 MB/秒)进行覆盖写入,我估计这将持续大约 58 天。但这相当于每天向该驱动器写入大约 17 TB 的数据。

即使您有页面文件,操作系统驱动器上的典型服务器工作负载也会少得多。假设每天 50 GB。如果 1 PB 这个数字准确(我知道这可能被视为平均数字,稍后会进一步讨论),那仍然需要 50 年以上。

当然,这些数字似乎高得离谱,所以让我们看看英特尔引用的硬盘预期寿命的实际数字。英特尔很高兴能够让 MLC(非企业级)驱动器每天写入 100 GB 数据,持续五年。对 SLC 与 MLC 闪存的标准理解是,SLC 闪存的使用寿命比 MLC 长约 10 倍(上面的链接也在图表上显示了这一点)。

当然,真相将由时间来证明——我们要么开始看到驱动器提前出现故障,要么就不会出现。但驱动器背后的数字加起来表明,对于质量不错的 SSD 来说,驱动器寿命不是问题根本

如果您使用的是 MLC SSD,那么您的担心也许是有道理的。但请记住,如果英特尔愿意将该驱动器的额定速度定为 100 GB/天,持续 5 年,那么这基本上与 50 GB/天,持续 10 年是一样的。而且,回到我最初的观点,您仍然需要知道您将在驱动器上执行什么样的实际工作负载。

就我个人而言,我强烈建议不要在生产服务器环境中使用 MLC SSD。如果优质的 SLC SSD 价格太高,那么暂时还是使用旋转磁盘吧。

(顺便说一句,如果您计算一下,比如说每天 100 GB,持续 50 年,也就是“SLC 的使用寿命是 MLC 的 10 倍”评级,那么看起来英特尔是在说他们的 32 GB 驱动器实际上总写入寿命接近 2 PB 数据,而不是产品规格上提到的 1 PB。即使我只相信这两个值中较小的一个,我也很高兴我的 X25-E 驱动器应该可以使用 10 年以上。)

答案2

除了寿命可能不是问题(正如 Daniel Lawson 提到的)以及 MS 团队本身的反馈(见下文)外,请考虑

  1. 无论如何,页面文件只会在必要时使用
  2. 如果页面文件在使用中,将其放在 SSD 上与旋转硬盘上会产生巨大的差异

页面文件应该放在 SSD 上吗?

是的。大多数页面文件操作都是小型随机读取或大型连续写入,这两种操作都是 SSD 可以很好地处理的操作类型。

通过查看数千条跟踪的遥测数据并关注页面文件的读写情况,我们发现

  • Pagefile.sys 的读取次数是 pagefile.sys 写入次数的 40 倍左右
  • Pagefile.sys 读取大小通常非常小,其中 67% 小于或等于 4 KB,88% 小于 16 KB。
  • Pagefile.sys 写入相对较大,其中 62% 大于或等于 128 KB,45% 正好是 1 MB。事实上,考虑到典型的页面文件参考模式以及 SSD 在这些模式下的良好性能特征,很少有文件比页面文件更适合放置在 SSD 上。

固态硬盘支持与问答 (MSDN)

答案3

除了完全禁用页面文件之外,告诉操作系统不要使用它可能也会更有用(例如sysctl vm.swappiness=0)。

除非必要,操作系统将避免使用它,从而节省 SSD 不必要的写入。

答案4

这并不是对 OP 的直接回应,但我想纠正 Ronald 和 Daniel 在上面回答/评论中的一个错误印象。(我是新手,所以没有足够的积分来评论。)

修剪实际上是最大您可以采取以下措施来延长 SSD 的使用寿命。原因如下:SSD 会定期进行“垃圾收集” - 从部分空白的擦除块中复制(碎片)数据,并将其连续写入新擦除的块中。

地址被重新映射,因此主机无需知道这一点。这种额外的写入活动与主机写入无直接关联,称为“写入放大”。在最坏的情况下,如果 SSD 已满,且有少量过度配置(隐藏备用)空间,写入放大很容易达到主机写入速率的 500% - 700% 的范围!

在垃圾收集期间,SSD 不会费心复制和重写已失效(覆盖或 TRIMmed)的页面,从而节省大量工作和写入活动。如果文件系统擦除了一个大文件,但没有通过 TRIM 通知驱动器,驱动器将继续复制已擦除的数据,无限期地浪费写入(或直到这些块地址恰好被分配给其他文件,这可能需要很长时间)。

综上所述,TRIM 是真的对于寿命和性能都很重要。

相关内容