现在在现代SSD上使用交换(swap)还是不推荐的吗?

我有一块带有Ubuntu 18.04的三星960 Pro固态硬盘。

把交换文件放在那里安全吗?从长远来看会不会有损害?

我听说有些人说新的固态硬盘不再受此问题的困扰,这是真的吗?


2交换文件应该没有问题。但是绝对不要对固态硬盘进行碎片整理。碎片整理会不必要地消耗大量的读写周期(固态硬盘不仅不需要碎片整理,而且还不应该进行碎片整理!)。也许这就是你们所说的内容? - Adrian Keister
1@AdrianKeister 首先,SSD没有碎片整理选项。Windows 10只提供了在defrag之处运行TRIM的功能。SSD上没有旋转盘片,因此顺序排序并不重要。在Linux上,即使在HDD上也不需要进行碎片整理。 - WinEunuuchs2Unix
2@WinEunuuchs2Unix:是的,我非常清楚这一点。在旧版本的Windows中,你仍然可以强制对SSD进行碎片整理;我一直认为禁用该服务是最安全的做法。 - Adrian Keister
1个回答

我有一块容量为512GB的SSD,并在上面安装了Ubuntu 16.04,还设置了一个512GB的SWAP分区。我认为这没有问题,原因如下:
- 有8GB的内存,所以SWAP分区从未被使用过,不用担心会缩短SSD的寿命。 - 我通常在两年后就会换掉笔记本电脑,购买新的。 - 如果将来需要使用虚拟机(VM),一旦发现SWAP分区被使用,我会立即升级到16GB或32GB的内存。 - 另一个选择是1TB的硬盘,但我希望将其作为可破坏的存储空间,并且不用担心它。 - 唯一的缺点是将SWAP分区放在最昂贵的SSD上,但Ubuntu只使用了16GB,而Windows 10只使用了385GB中的110GB。 - 优点是,如果SWAP分区被用于大量内存泄漏,那么OOM-Killer(内存溢出杀手)会比普通硬盘快20倍告诉我存在问题。因为我相信我们的SSD比普通硬盘快大约20倍。

监控三星Pro 960 M.2 NVMe Gen 3.0 x 4 SSD

首先,安装nvme-cli是第一步,因为它提供了最详细的信息。
sudo apt install nvme-cli

下一步,从SSD收集可用的信息。
$ sudo nvme smart-log /dev/nvme0
Smart Log for NVME device:nvme0 namespace-id:ffffffff
critical_warning                    : 0
temperature                         : 36 C
available_spare                     : 100%
available_spare_threshold           : 10%
percentage_used                     : 0%
data_units_read                     : 8,743,226
data_units_written                  : 4,763,574
host_read_commands                  : 147,308,749
host_write_commands                 : 47,032,599
controller_busy_time                : 343
power_cycles                        : 519
power_on_hours                      : 376
unsafe_shutdowns                    : 66
media_errors                        : 0
num_err_log_entries                 : 198
Warning Temperature Time            : 0
Critical Composite Temperature Time : 0
Temperature Sensor 1                : 36 C
Temperature Sensor 2                : 43 C
Temperature Sensor 3                : 0 C
Temperature Sensor 4                : 0 C
Temperature Sensor 5                : 0 C
Temperature Sensor 6                : 0 C
Temperature Sensor 7                : 0 C
Temperature Sensor 8                : 0 C

最重要的字段是“使用百分比”,显示为0%。这不是磁盘使用百分比,而是寿命使用百分比。我从2017年10月开始使用这个驱动器,现在是2018年5月。一旦“使用百分比”达到1%,我可以将拥有它的月数乘以100来找出它何时会死亡。但他们说这个驱动器通常比那更长寿。

我唯一担心的原因是因为我即将同时运行多个虚拟机。 - H D
Swap的速度将比普通硬盘快20倍,我猜。不过我还是会定期监控写入次数。检查一下10万亿寿命写入(或者其他规格)已经使用了多少,并推算出使用年限。 - WinEunuuchs2Unix
1@HD 我更新了答案,告诉你如何轻松地查看剩余寿命。你可以通过上面显示的512字节计数中的写入次数来更准确地了解。我读到的平均寿命是2,000次写入,但这是乘以512 GB而不是512字节。这就是你要感谢德州仪器的计算器的时候之一。 - WinEunuuchs2Unix
我的电脑目前使用的是2%的容量,购买于2017年9月左右。它也是512GB的存储空间。我应该担心吗?我想现在就升级到32GB的内存条。 - H D
3@HD 您每4个月使用1%,因此您可以获得400个月= 33年的服务。所以不用担心,但要监测趋势... - WinEunuuchs2Unix