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


26

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

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

据我了解,如果没有页面文件,那么当您达到RAM的极限时,可能会触发磁盘崩溃。但是对于SSD,没有颠簸的概念,读取速度很快。

你们有什么感想?


我会继续。Moderns SSD应该可以保持一定距离。请参阅:storagesearch.com/ssdmyths-endurance.html
马特

1
另外,如果您的工作量适合您的服务器,则无论如何您几乎都不应分页到磁盘(好吧,只有在有益的情况下才分页)。仅在上个月,我的服务器在整个月中平均仅进出约100页。
马修·伊夫

Answers:


22

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

这听起来像是过早的优化。您尚未讨论计划使用哪些SSD,并且没有实际查看服务器工作负载和计划的SSD数据表,就无法知道页面文件将对SSD的寿命产生什么影响。

在更大的Internet上以及在Server Fault上,也存在大量有关SSD使用寿命短的错误信息。早期型号的SSD可能已经出现问题,并且USB闪存驱动器肯定开始降级,但是企业级SSD的磨损均衡算法要好得多,并且某些SSD利用备用闪存来提高性能和磨损。

例如,英特尔X25-E驱动器声称32 GB驱动器的写入持续时间为1 PB随机写入。如果您不停地通过写操作使写入接口(200 MB /秒)饱和,我估计这将持续约58天。但这每天在该驱动器上写入约17 TB的数据。

即使您有页面文件,OS驱动器上的典型服务器工作量也将大大减少。每天称之为50 GB。如果1 PB的数字是准确的(我知道它可以被认为是平均数字,稍后再讨论),那仍然是50年来的某个地方。

这些数字显然高得离谱,因此,让我们看一下Intel引用的预期驱动器寿命的实际数字。英特尔很高兴让MLC(非企业级)驱动器有资格在五年内每天写入100 GB数据。对SLC与MLC闪存的标准理解是,SLC闪存的持续时间是MLC的10倍左右(上面的链接也显示在图表上)。

当然,事实将随着时间的流逝得到证实-我们要么开始看到驱动器过早失效,要么就不会失败。但驱动器后面的数字加起来不被驱动长寿体面的品质固态硬盘有问题,在所有

如果您使用的是MLC SSD,那么担心是正确的。但是请记住,如果英特尔高兴地将驱动器的额定价格定为100 GB /天,为期5年,则基本上仍与10年的50 GB /天相同。而且,回到我的原始观点,您仍然需要知道将要在驱动器上执行的实际工作量。

我个人强烈建议不要在生产服务器环境中使用MLC SSD。如果像样的SLC SSD过于昂贵,请暂时坚持旋转磁盘。

(顺便说一句,如果您进行数字计算,例如连续50年每天100 GB,这是“ SLC的持续时间比MLC长10倍”的评价,似乎英特尔说他们的32 GB驱动器实际上具有总写入寿命接近2 PB的数据,而不是产品规格中引用的1 PB。即使我只相信这两个值中的较小者也感到满意,我的X2​​5-E硬盘应能持续使用10年以上。


我想我将修改有关使用MLC SSD的声明:它们似乎足以供企业使用。我听说有一家使用SLC SSD的主要供应商正在用MLC闪存和更智能的控制器代替其SLC系列。
丹尼尔·劳森

15

正如丹尼尔·劳森(Daniel Lawson)所述,除了寿命可能不是问题之外,以及MS团队本身的反馈(如下),请考虑

  1. 无论如何,仅在必要时使用页面文件
  2. 如果页面文件使用,有它的SSD VS一个旋转的硬盘驱动器将作出巨大的差异

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

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

在查看来自数千条迹线的遥测数据并关注页面文件的读取和写入时,我们发现

  • Pagefile.sys读取的页数要比pagefile.sys写入的数多40到1
  • Pagefile.sys的读取大小通常很小,小于或等于4 KB占67%,小于16 KB占88%。
  • Pagefile.sys的写入相对较大,大于或等于128 KB的占62%,正好1 MB的占45%。实际上,给定典型的页面文件参考模式和SSD在这些模式上具有的良好性能特征,几乎没有文件比页面文件更适合放置在SSD上。

固态硬盘(MSDN)的支持和问答


9

与其完全禁用该页面文件,不如告诉操作系统不要使用它(例如sysctl vm.swappiness=0),可能会很有用。

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


4
那很棒。Windows有这样的调整吗?
火热

我不确定,但是您可以通过将页面文件大小设置为最小(2MB)并允许其增长来模仿。
MikeyB

5

我将始终启用页面文件;您的操作系统或应用程序的某些部分可能被编写为期望其中的一部分,因此如果没有某个部分,可能会出现异常。

话虽如此,我过去在没有页面文件的情况下运行Windows(XP),并且对我所付出的一切感到非常满意。尽管总会有一些令人讨厌的疑问,尽管会出现一些不希望的事情。

一种选择是将其设置为很小。


我认为应用程序无法检测到它们是否正在使用ram或swap。那怎么可能呢?
火热

实际上,该操作系统已调整为启用虚拟内存。您对SSD的观点是正确的,或者我想您是对的-我读过很多文章说,它们存在重复的写入问题,而虚拟内存肯定可以做到这一点。您不能将页面文件/交换放置在正确的磁盘上吗?(这似乎当然是违反直觉的……)
凯尔·霍奇森

为什么操作系统会假定存在页面文件?Linux当然不会,而且我也从未见过任何理由相信Windows也是如此
Mikeage

2
这里是一个有理由相信Windows并:blogs.msdn.com/ericlippert/archive/2009/06/08/...
DMO

3

这并不是对OP的直接响应,但我想纠正Ronald和Daniel在上述答案中的错误印象。(我是新来的,所以没有足够的意见要发表。)

实际上,TRIM是您可以做的最大的事情,可以延长SSD的寿命。原因如下:SSD定期进行“垃圾收集”-从部分为空的擦除块中复制(碎片化的)数据,并将其连续写入新擦除的块中。

地址被重新映射,因此主机不需要知道这一点。这种与主机写入不直接相关的额外写入活动称为“写入放大”。最坏的情况是完全满的SSD带有少量的预留空间(隐藏的备用空间),写入放大率很容易在主机写入率的500%-700%范围内!

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

总而言之,TRIM 对于寿命和性能都非常重要。


2

我在链接的另一篇文章中对此进行了说明,但是我们运行的是非常主流的服务器,没有页面文件,这里的一切似乎都很好。实际上,没有它似乎更快。我们有8GB的RAM,我想说的是,您应该基于是否有大量RAM而不是硬盘驱动器是否是SSD来做出决定。尽管我可以理解不通过进行不必要的写入来节省生命的想法。


2

只需将第二个硬盘用于虚拟内存即可。


1
我认为,要点是通过使用SSD来提高交换性能,如果将页面文件写入SSD不会通过可用的驱动器烧坏。使用普通硬盘不会提供SSD所能提供的性能优势。
jrista

在大多数笔记本电脑上不可能。
Brian Knoblauch

0

我一直在运行具有8 GB RAM,SSD单驱动器且没有页面文件的笔记本电脑,一年多来没有问题。我遇到了一个需要页面文件的游戏,访问了软件网站,并获得了运行命令以将其禁用,问题已解决。

我的笔记本电脑已经四年了。较旧,但比某些较新的台式机运行更快。自从创建该技术以来,内存泄漏(即SWAP文件)一直是Windows操作系统的问题。不幸的是,Linux开发人员紧随其后。您在后台运行的软件越少越好(尤其是Microsoft的软件)。


-1

我想说不要使用交换,如果您可以摆脱它。或将交换性调低。如果不需要,那么就很难用完了(以最大带宽将整个驱动器写入100,000次需要花费多长时间?)。

再说一次,没有某种交换,休眠(挂到磁盘)将无法工作。

过去有一些奇怪的行为,没有交换(例如交换到50 MB的RAM磁盘将是一个胜利),但这是在去年夏天修补的(或者是2007?),因此当前的操作系统应该没问题。

现在,我们所需要的只是支持擦除命令的硬件(Linux已经支持了几个月),而SSD的使用寿命将非常可观。


TRIM命令不会做任何事情来延长SSD的使用寿命-它所做的只是发出块擦除操作以清除带外的脏块。正常行为是使SSD在重写该块时发出擦除。最终结果是,使用TRIM可能会获得更好的性能,但是SSD仍会发出相同数量的擦除和写入命令。
丹尼尔·劳森2009年

非常正确,这只会使它们表现更好。
罗纳德·帕托

Daniel(和Ronald):如果SSD知道某个“磁盘”部分已被释放或清零,这要归功于TRIM,它在进行写平整或管理小写操作时可能不会复制它。这意味着更少的写操作和更长的使用寿命,不是吗?一些看似坚实的来源同意我的看法:atpinc.com/Memory-insider/... superuser.com/questions/1063744/... wiki.archlinux.org/index.php/Solid_state_drive#TRIM -为边缘情况等重要资源
马修·艾维(Matthew Elvey)

-2

我已经有两个企业级固态硬盘烧坏对我非常过早地(即,在保修期内好)。我认为原因是由于颠簸而导致大量交换。我经常意识到,我不需要的进程正在运行/存在内存泄漏的Buggy守护程序,因此几乎连续都有大量交换活动。我iostat -n9 -w 10不时在后台运行,注意到经常有连续的大量磁盘活动。同样,内核进程的(交换)活动被记录为大多数I / O的来源。我记得有一个守护程序,它的内存泄漏持续了几个月,需要定期杀死。除非系统很烦人,否则我通常不会进行故障排除,因此在我花时间重新启动守护程序之前,通常会进行很长时间的调试。并且需要更长的时间来修复泄漏。

虽然禁用交换功能会引起我的注意,但此问题将在SSD出现严重磨损之前得到解决,但这远不是防止此类损坏的最佳方法。任何体面的监视/警报工具都会更好。

许多答案未能意识到的警告是,如果服务器连续不断地撞击 SSD,在这种情况下,一年之内它就会很快烧尽。当虚拟内存交换足够繁重以至于足以使(交换)驱动器保持繁忙时,通常会发生经典的抖动-恰好在其最大I / O带宽的数量级之内,并且至少有一个进程在等待与交换相关的I / O。 O完成系统大部分时间处于该状态的时间。其他答案假定系统不是颠簸,至少不是经典的方式;或依赖于误解是什么 而且,即使有其他准确的数据,这种错误的假设也会导致关于WHY分页的错误答案,即使SSD是交换文件的唯一可能位置,也最好将其启用。


-3

当您有大量未使用的内存时,请禁用磁盘上的页面文件。一些旧程序需要页面文件功能,而对于那些Windows,它们将在内存中创建一个小的页面文件功能。


2
我再也不同意你。为什么不看这个海报链接到的问题的公认答案。
斩波器

2
Windows会在内存中创建一个页面文件吗?怎么样?
Mark Sowul,2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.