为什么在SSD驱动器上没有交换分区?


87

我经常读到不要将交换分区放在SSD驱动器上,因为这可能会损坏设备。这是真的?你能给我解释一下原因吗?

因为否则我会认为将交换放在SSD上是最好的选择,因为它比HDD快得多,因此将RAM内容交换到SSD上不会像使用HDD那样慢。

Answers:


84

SSD中的闪存RAM单元的使用寿命有限。每个写入(但不读取)周期(或更准确地说,每个擦除)都磨损一个存储单元,并且在某个时候它将停止工作。

一个单元可以生存的擦除周期的数量是高度可变的,现代SSD的闪存比几年前生产的SSD的闪存寿命要长得多。此外,SSD智能固件将确保所有单元之间的擦除均匀分布。在大多数驱动器中,未使用的区域也可用于备份损坏的单元并延迟老化。

为了具有可用来比较SSD耐久性的价值,我们可以使用寿命指标,例如JEDEC发布的标准。对于耐力一种广泛可用值是TBWŤ时代 ytes W¯¯雷农,或者可替换地写入总字节数),它是可写的字节的数量的驱动器发生故障之前。对于消费类产品,现代SSD的得分可低至20 TB,而企业级SSD的得分可超过20,000 TB。

话虽如此,但寿命和SSD交换的使用取决于多个因素...

具有大量RAM的系统

在具有大量RAM和少量内存消耗应用程序的系统上,我们几乎永远不会交换。这只是为了防止数据丢失,以防应用程序耗尽了我们所有的RAM。在这种情况下,交换所导致的SSD磨损不会成为问题。但是,在常规硬盘驱动器上拥有这个几乎未使用的交换分区不会导致任何性能下降,因此我们可以安全地将交换分区(或文件)放在便宜得多的硬盘驱动器上,并将SSD上的空间用于其他用途有用。

内存很少的系统

在RAM稀疏且无法升级的系统上,情况有所不同。在这种情况下,交换确实可能会更频繁地发生,尤其是当我们运行内存密集型应用程序时。在这些系统中,SSD上的交换分区或文件可能会导致性能显着提高,但会以稍微缩短SSD寿命为代价。但是,寿命的缩短可能还不够短,不足以引起关注。极有可能在固态硬盘失效之前就对其进行更换,因为可能以如今价格的一小部分可获得几倍的存储空间。

休眠我们的系统

从固态硬盘唤醒时,从休眠状态唤醒确实非常快。如果幸运的话,我们的系统可以在没有任何问题的情况下保持休眠状态,那么可以考虑使用SSD。它会比从启动时更多地磨损SSD,但我们可能会觉得值得。

但是从SSD引导启动可能不会比从SSD休眠模式唤醒所需的时间长得多,并且它对SSD的磨损要少得多。就个人而言,我根本不休眠系统-我挂起至RAM或从SSD快速启动。

SSD是我们拥有的唯一驱动器

在这种情况下,我们真的没有选择。我们不想在没有交换的情况下运行,因此我们必须将其放在SSD上。但是,如果我们不打算在任何时候使系统休眠,我们可能希望有一个较小的交换文件或分区。

注意速度

SSD最擅长快速访问和读取许多小文件,并且优于传统的硬盘驱动器,可以从顺序读取的中小文件传输数据。快速的传统硬盘驱动器在写入(并在较小程度上读取)大型音频或视频流或其他较长的无碎片文件时,仍可能比SSD更好。旧的SSD可能会随着时间的推移或在其已满后性能下降。


2
因此,我们可以得出结论,我们应该优先使用SSD来存储理想情况下一次写入(很少写入)且需要经常读取的数据。像系统文件,程序文件或主文件夹的数据目录(音乐,视频等)。关于一个现代的平均SSD单元应生存多少个写入/擦除周期,是否有一个大概的数字?1000?10000?是的,我知道控制器会尝试在所有电池之间平均分配使用量,以延长使用寿命。
字节指挥官

@ByteCommander有关您的评论的更多观点,请参见编辑。
塔卡特2015年

我认为关于速度的说明令人误解-SSD的性能将胜过硬盘-最快的(SAS,15000 rpm)驱动器提供的连续访问速度约为250MB /秒,而SSD的访问速度几乎是后者的两倍(与常规硬盘相比,它显得苍白无力)在大约110MB /秒-在连续读取SSD的表现将优于硬盘,问题是代价之一。
davidgo

@davidgo的确,通常来说,SSD的性能要比硬盘好得多,尤其是在SSD是新的情况下。但是,有报告称,不仅由于老化的SSD,而且由于较长时间的顺序读取(例如视频流),性能也会显着下降。参见例如SU上的该帖子以及Seagate的深入说明。因此,我们不应该依赖最初的伟大价值永远持续下去。
塔卡特

1
希捷有趣的帖子,但是写的时间大约是2010年-从那时到2015年,SSD的发展已经走了很长一段路-特别是在背景垃圾收集和磨损均衡方面-极大地改变了景观-参见techreport.com/review/27909/…从2013年开始。而且,在2010年,ssd控制器卡的功能还很丰富。
davidgo '16

17

早期的固态硬盘因写入次数少于硬盘而失败。如果经常使用交换,则SSD可能会更快出现故障。这可能就是为什么您听说使用SSD进行交换可能不好的原因。

现代固态硬盘没有这个问题,它们的故障发生速度不应超过同类硬盘。由于交换速度更快,因此将交换放置在SSD上比将其放置在HDD上可带来更好的性能。

此外,如果系统具有足够的RAM(可能,如果系统足够高端以拥有SSD),则无论如何都很少使用交换。


2
我很想相信这一点,但是我想等待进一步的反应,并且希望任何参考都可以作为证明。如果有有效的证据或明显的多数意见,我将接受一个答案。
字节指挥官

1
虽然在统计上对您的SSD使用寿命无效。SSD寿命测试2015年最终techreport.com/review/27909/…显示,即使对于那些首先失败的硬盘,寿命也很长。我曾经在一年内发生硬盘故障,但这是不正常的。我的4GB RAM系统几乎从未使用过swap。
oldfred

1
我在这里的问题是:如果我有一个SSD和大量的ram,我应该像在过去的HDD一样尝试将我的应用程序包含在RAM中,还是可以让它与SSD一起运行。似乎仍然值得,但也许不值得。
jerclarke

9

HDD技术使用磁处理进行数据处理和存储。此过程是非侵入性的,这意味着您几乎可以无限操作磁盘驱动器上的数据。直到机械师开始失败。相反,SSD技术不会带来机械故障的风险。但令人担忧的是它如何存储数据。对于数据存储SSD,请使用受控的电能突发。随着时间的流逝,受到此电流冲击的半导体会慢慢从工艺中磨损。

通过软件和硬件更新改进了此过程。早期的适配器发现,操作系统没有像SSD一样被编程为正确存储数据。这不利地使SSD经历了大量的读/写周期。同样,大多数较旧的BIOS无法正确识别SSD,这也会引起问题。

UEFI的引入和操作系统的更新纠正了早期SSD所有者所遇到的大多数问题。同样,与任何生产过程一样,SSD本身在管理和维护NAND闪存驱动器的性能下降方面也越来越出色。

但是,仍然需要担心的是,SSD在无法存储数据之前具有有限的读/写周期。不过,这种担忧与硬盘故障一样严重。

如果您想进一步阅读该主题,这里有一个非常深入的播客。


这样,在较老的biosuefi系统之间进行读取可能不会ssd像在较新uefi的系统上那样有效地交互吗?
Thufir

7

即使您有足够的RAM,您仍可能希望阻止任何文件复制或搜索以从RAM换出应用程序。在大型文件操作中可能涉及的文件服务器(NAS,SAMBA,FTP)上就是这种情况。

为此,最好设置为/etc/sysctl.conf vm.swappiness=1 vm.vfs_cache_pressure=50

第一个设置可防止磁盘缓存(例如做cp)从RAM中换出现有的应用程序。正常的默认设置是60。请注意,使用0虽然更积极,但有时会报告会产生内存不足错误。

第二个设置防止文件搜索(例如做find)从RAM中换出现有的应用程序。正常的默认设置是100。

尽管参考文献中提到的作者没有明确提及SSD,但是由于减少了交换,这种方法还可以减少SSD的磨损,并且他还提供了如何进行测试的示例。

参考:https : //rudd-o.com/linux-and-free-software/tales-from-responnessnessland-why-linux-feels-slow-and-how-to-fix-that


3

生活与绩效平衡。

您购买SSD是因为其性能优势,而不仅仅是增加电池寿命,对吗?因此,为此目的请使用您的SSD,以使您的系统更快。

如果您有能力增加内存以减少* swap I / O,那么这显然会延长SSD的寿命,因为另一个性能消耗显然是交换文件系统空间的I / O周期。

同样,就像系统配置的许多方面一样,通常不能只采用一种适用于所有规则的规则。用户需求各不相同,因此系统要求和配置也必须有所不同才能满足这些需求,简而言之归结为您如何配置系统。

如果您除了拥有非固态硬盘驱动器之外,还拥有空间来容纳固态硬盘,然后将很少更改的文件写入非固态硬盘驱动器,并将经常访问的文件保留在固态硬盘驱动器上。
这将确保……

[1]-* trim功能将具有执行必要步骤以均匀使用所有驱动器的资源。[收益=生活]

[2]-使用高速SSD设备访问经常访问的文件系统,将减少I / O延迟。[效益=表现]

ç onfigure您的临时文件系统需要为特定的系统需求时,如果你有足够再考虑RAM设置您swappiness水平不那么积极的利用空间,这样能保证...

[1]-SSD I / O减少了,但您的系统仍将满足其用户的需求。[收益=生活]

d啊,你真的需要全部关闭这些日志?考虑一下您的系统正在记录什么以及在哪里记录。

[1] –随着日志文件访问减少,SSD I / O减少。[收益=生活与表现]

系统配置还有很多其他方面,这些方面可以使没有SSD的系统执行得更快,默认的系统构建对于实现,纯粹的性能或保持数据的安全性或两者之间的平衡混合具有严格的衡量标准。如果您对所写内容和设备使用相同的心态,则可以大大提高性能,同时增加SSD的使用寿命。

* swap-请记住,这不仅在资源不足时使用,默认情况下,可为许多Linux发行版配置的可交换性默认会将长期运行的低优先级进程停在性能阶梯上,进一步降低到交换空间中)

* Trim –值得验证是否启用了该功能,这是一篇很好的文章,介绍了什么是修整及其工作原理:http//searchstorage.techtarget.com/definition/TRIM


0

我认为这是因为SSD驱动器就像闪存一样,它们在您的读写周期中越耗光。交换会使情况变得更糟,因为交换不断向交换文件写入数据。

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.