对于 SSD 来说,使用 RAM 磁盘是否更好?

对于 SSD 来说,使用 RAM 磁盘是否更好?

我是一名 macOS(MacBook Pro 2015 年中,配备 256GB SSD)用户,经常使用 torrent 下载大量内容。我知道 torrent 可能会损坏 SSD,因此我决定创建一个 RAM 磁盘,用于临时存储 torrent,直到下载完成。这是一种好的做法吗?

我认为这是因为不再有写入磁盘的操作。但是,系统可用的 RAM 更少,页面交换会更频繁地发生,这无论如何都会导致更多写入 SSD。最终,甚至 RAM 磁盘也可能被交换到 SSD,然后我将一无所获(也许只是我会以某种方式批量写入 SSD)。

答案1

闪存或 SSD 设备磨损/速度变慢写作,而不是读取。由于您无论如何都打算从 RAM 磁盘复制到 SSD,因此我看不到任何好处。

此外,您提到,由于您的 RAM 磁盘耗尽了系统的 RAM,因此交换发生得更频繁。这听起来适得其反,因为对于 SSD 来说,最好的做法是减少交换(Linux 上带有 SSD 的 swapiness)。

因此,这在很大程度上取决于您的可用 RAM 的大小、RAM 磁盘的大小以及您的 torrent 的大小 - 即使在最好的情况下,您在这里获得的收益也很小 - 很有可能您的系统会变慢,因为它必须更频繁地进行交换,这也会不必要地增加 SSD 上的写入量。

答案2

不,这毫无意义。

传入的 torrent 通常由许多非常小的数据包组成。如果 torrent 客户端将它们单独写入磁盘,您将在各处收到大量随机写入的小数据。
(请记住,torrent 中的数据块以相当随机的顺序发送到您的计算机。您不会按顺序收到它们。)

一般来说,大量的小随机写入对任何硬盘都不利,对 SSD 更不利。这就是“torrent 会毁掉你的 SSD”这个说法的由来。

但实际上这不是问题:
首先:SSD 比很多人想象的要坚固。
无论如何,操作系统/文件系统都会在一定程度上缓存磁盘写入。
最重要的是,torrent 客户端本身会做得更好:
通常,torrent 客户端会将数据块收集在一起(在内存中)成所谓的“块”,并在完成时(或当某个时间段已到期时,例如编辑器每 X 分钟自动保存一次文档)将块刷新到磁盘。
在许多客户端中,您甚至可以配置该缓存缓冲区的大小,建议根据您可用的 RAM 量将其设置为尽可能大。
这种缓存可防止磁盘磨损(对于 SSD 和经典 HD),并且对于经典 HD,可通过减少磁盘垃圾来提高整体性能。

实际上不需要设置自己的 RAM 磁盘。它不会带来任何额外的好处。

PS
由于我是对 libtorrent(许多 torrent 客户端使用)以及其他具有类似缓存要求的文件共享程序进行过一些工作的程序员之一,所以我知道自己在说什么。

相关内容