Byt*_*der 116 ssd swap hard-drive
我经常读到不应将交换分区放在 SSD 驱动器上,因为这可能会损坏设备。这是真的?你能解释一下原因吗?
因为否则我会认为将交换放在 SSD 上是最好的选择,因为它比 HDD 快得多,因此将 RAM 内容交换到 SSD 并不像使用 HDD 那样慢......
Tak*_*kat 110
SSD 中的闪存 RAM 单元的使用寿命有限。每个写入(但不是读取)周期(或更准确地说,每次擦除)都会磨损一个存储单元,并且在某个时候它会停止工作。
一个单元可以承受的擦除周期数量变化很大,现代 SSD 的闪存比几年前制造的 SSD 闪存的寿命要长得多。此外,SSD 智能固件将确保在所有单元之间均匀分布擦除。在大多数驱动器中,未使用的区域也可用于备份损坏的单元和延迟老化。
要获得可用于比较 SSD 耐用性的值,我们可以使用寿命度量,例如JEDEC 发布的标准。对于耐力一种广泛可用值是TBW(Ť时代乙ytes W¯¯雷农,或者可替换地写入总字节数),它是个字节的量可写驱动器失效之前。对于消费类产品,现代 SSD 的得分可以低至 20 TB,但在企业级 SSD 中可以得分超过 20,000 TB。
话虽如此,SSD 的使用寿命和用于交换的使用取决于几个因素......
在具有大量 RAM 和很少内存消耗的应用程序的系统上,我们几乎永远不会交换。如果应用程序占用了我们所有的 RAM,它只是一种防止数据丢失的安全措施。在这种情况下,因交换而磨损 SSD 将不是问题。但是,在传统硬盘驱动器上放置这个大部分未使用的交换分区不会导致任何性能下降,因此我们可以安全地将交换分区(或文件)放在便宜得多的硬盘驱动器上,并使用 SSD 上的空间做更多事情有用。
在 RAM 稀疏且无法升级的系统上,情况有所不同。在这种情况下,交换确实可能更频繁地发生,尤其是当我们运行内存密集型应用程序时。在这些系统中,SSD 上的交换分区或文件可能会带来显着的性能提升,但代价是 SSD 寿命有所缩短。然而,这种缩短的寿命可能仍然不够短,值得关注。很有可能,SSD 可能会在它消亡之前很久就被更换,因为存储的价格可能只是今天的几分之一。
从休眠状态唤醒从 SSD 确实非常快。如果我们很幸运并且我们的系统在休眠状态下没有问题,我们可以考虑为此使用 SSD。它会磨损 SSD,而不仅仅是从它启动,但我们可能觉得这是值得的。
但是从 SSD 启动可能不会比从 SSD 休眠中唤醒需要多长时间,而且它对 SSD 的磨损要小得多。就我个人而言,我根本不休眠我的系统 - 我暂停到 RAM 或从我的 SSD 快速启动。
在这种情况下,我们真的没有选择。我们不想在没有交换的情况下运行,所以我们必须把它放在 SSD 上。但是,如果我们不打算在任何时候休眠我们的系统,我们可能希望有一个较小的交换文件或分区。
SSD最擅长快速访问和读取许多小文件,并且在从顺序读取的中小型文件传输数据方面优于传统硬盘。在写入(在较小程度上读取)大型音频或视频流或其他较长的未碎片文件时,快速的传统硬盘驱动器的性能可能仍优于 SSD。较旧的 SSD 可能会随着时间的推移或在它们相当满后性能下降。
mab*_*em8 22
早期的 SSD 因写入次数少于 HDD 而失败而闻名。如果经常使用交换,那么 SSD 可能会更快出现故障。这可能就是您听说使用 SSD 进行交换可能不好的原因。
现代 SSD 没有这个问题,它们的故障速度不会比同类 HDD 快。由于速度更快,将交换放置在 SSD 上会比将其放置在 HDD 上获得更好的性能。
此外,如果您的系统有足够的 RAM(很可能,如果系统足够高端以配备 SSD),则交换可能很少使用。
小智 15
即使您有足够的 RAM,您可能仍希望阻止任何文件复制或搜索以从 RAM 中换出应用程序。在可能涉及大文件操作的文件服务器(NAS、SAMBA、FTP)上可能就是这种情况。
为此,最好设置/etc/sysctl.conf:
vm.swappiness=1
vm.vfs_cache_pressure=50
Run Code Online (Sandbox Code Playgroud)
第一个设置防止磁盘缓存(例如执行cp)从 RAM 中换出现有的应用程序。正常的默认设置是 60。请注意,使用 0 虽然更激进,但有时会报告产生内存不足错误。
第二个设置防止文件搜索(例如执行find)从 RAM 中换出现有应用程序。正常的默认设置是 100。
虽然参考文献中提到的作者没有明确提到 SSD,但这种方法也减少了 SSD 由于减少交换而造成的磨损,并且他还提供了如何测试它的示例。
参考:https : //rudd-o.com/linux-and-free-software/tales-from-responsivenessland-why-linux-feels-slow-and-how-to-fix-that
小智 9
HDD 技术使用磁性过程进行数据操作和存储。这个过程是非侵入性的,这意味着您几乎可以无限地操作磁盘驱动器上的数据。直到机械师开始失败。相比之下,SSD 技术不存在机械故障的风险。但令人担忧的是它如何存储数据。对于数据存储,SSD 使用受控的电能突发。随着时间的推移,被这种电流击中的半导体会慢慢地从过程中磨损。
此过程已通过软件和硬件更新得到改进。早期的适配器发现操作系统没有被编程为像 SSD 那样正确存储数据。这不利地使 SSD 经历了大量的读/写周期。此外,大多数较旧的 BIOS 无法正确识别 SSD,这也会导致问题。
UEFI 和操作系统更新的引入纠正了早期 SSD 用户遇到的大部分问题。此外,与任何生产过程一样,SSD 本身在管理和维护 NAND 闪存驱动器的退化方面已经变得更好。
但是,您的 SSD 在无法再存储数据之前的读/写周期数量有限,这仍然是一个问题。虽然,这种担忧与您的 HDD 故障一样微不足道。
如果您想进一步阅读该主题,这里有一个关于该主题的非常深入的播客。
小智 6
2021 年 1 月。我使用小型专用企业级 SSD 作为交换驱动器。这些企业级驱动器现在只需 80 美元即可购买 240GB,并且是 3D nand,具有负载均衡和其他有价值的交换改进。
\n通过仅使用该驱动器进行交换,您几乎可以保证它不会\xe2\x80\x99 影响您昂贵的 TB 级数据驱动器(如果它出现故障),并且您仍然可以获得 SSD 的性能。大量使用的估计约为 2 1/2 年。
\n小智 5
生活与绩效的平衡。
您购买 SSD 是因为它的性能优势,而不仅仅是为了增加电池寿命,对吗?因此,将您的 SSD 用于此目的,让您的系统更快。
如果您能负担得起添加更多 RAM 以减少 *swap I/O,那么这显然会增加 SSD 的使用寿命,因为另一个性能消耗显然是 I/O 周期以交换文件系统上的空间。
同样,就像系统配置的许多方面一样,它通常不会归结为适用于所有人的单一规则采用。用户需求不同,因此系统要求和配置必须不同才能满足这些需求,简而言之,归结为您如何配置系统。
如果除了非 SSD 驱动器外,您还有空间容纳 SSD,则将很少更改的文件写入非 SSD 驱动器,并将经常访问的文件保存在 SSD 驱动器上。
这将确保……
[1] - *trim 功能将拥有执行必要步骤以均匀使用所有驱动器的资源。[利益=生命]
[2] - 通过使用高速 SSD 设备访问经常访问的文件系统,您的 I/O 延迟将减少。[收益 = 性能]
ç onfigure您的临时文件系统需要为特定的系统需求时,如果你有足够再考虑RAM设置您swappiness水平不那么积极的利用空间,这样能保证...
[1] - SSD I/O 减少,但您的系统仍将满足其用户的需求。[利益=生命]
d啊,你真的需要全部关闭这些日志?考虑您的系统正在记录什么以及在哪里记录。
[1] – 随着日志文件访问的减少,SSD I/O 也会减少。[收益 = 寿命和性能]
您的系统配置还有很多其他方面可以使非 SSD 系统执行得更快,默认系统构建有一个严格的指标需要满足,纯粹的性能或保持数据安全可靠或平衡混合所有这些。如果您对写入的内容和设备采用相同的心态,则可以大幅提高性能,同时延长 SSD 的使用寿命。
*swap - 请记住,这不仅仅在资源不足时使用,默认情况下,许多 Linux 发行版开箱即用的可配置的 swappiness 会将长期运行的低优先级进程停放在性能阶梯的下方,进入交换空间)
*修剪- 值得验证您是否启用了它,一篇关于修剪是什么及其工作原理的好文章:http : //searchstorage.techtarget.com/definition/TRIM
接受的答案解释了这个理论;我想我可以从我的两个系统中添加一些现实生活中的数据。
根据 SMART 的说法,它的生命周期写入次数为 28TiB(19GiB/天)。ext4 文件系统的生命周期写入次数为 18TiB(12GiB/天)。其余部分是由于交换和 Windows 安装造成的。
根据英特尔 SSD Toolbox 的数据,该驱动器运行状况良好,剩余使用寿命约为 95%:
我似乎无法获得设备写入总量,但 ext4 文件系统几乎精确地看到了 1TiB 写入(1GiB/天)。根据mmc-utils:
# mmc extcsd read /dev/mmcblk0 | egrep -i 'life|eol'
eMMC Life Time Estimation A [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]: 0x01
eMMC Life Time Estimation B [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_B]: 0x01
eMMC Pre EOL information [EXT_CSD_PRE_EOL_INFO]: 0x01
Run Code Online (Sandbox Code Playgroud)
这意味着SSD 的备用块已使用 0-10%,并且驱动器处于“正常 EOL 状态”。根据我的理解,驱动器的剩余寿命已超过 90%。
两个截然不同的系统,都使用了多年,并且在 SSD 上进行交换,并且两个系统都完全没问题。根据诊断结果,两款 SSD 的使用寿命都已超过 90%。
公平地说,这两个系统的交换使用量可能都很少。内存压力更大的系统将会看到更多的交换写入,因此 SSD 磨损也会更多。但对于正常的桌面使用和偶尔的少量交换使用,我认为将交换放在 SSD 上没有问题。
| 归档时间: |
|
| 查看次数: |
173379 次 |
| 最近记录: |