Linux 通过在启动时将文件移动到 ramdisk 来加速

Linux 通过在启动时将文件移动到 ramdisk 来加速

我的电脑有足够的内存(8GB),几乎没有被使用。在大多数情况下,我的桌面和应用程序会消耗 2-3GB,但另一方面,我没有 SSD。

我的系统是 64 位 Debian Wheezy。

我想知道是否有任何框架可以在每次启动时将常用文件(如 Thunderbird、Firefox、OpenOffice、VLC、Pidgin)复制到 ramdisk,以加快访问速度。

这显然可以通过在每次启动后使用 init shellscript 来实现,然后稍后为这些文件设置符号链接,但也许已经有一个完整的解决方案可以做到这一点......

问题2:

Linux 内核(3.14)是否有任何优化可以比普通内核更好地利用大量内存?如果是的话,那些是什么?

问题3:

在这种情况下,完全禁用交换分区是一个好主意,对吧?

谢谢

答案1

任何复制常用文件的框架

只需将它们放入 /dev/null 即可填充 VFS 缓存。但即使没有任何进一步的 I/O 或内存需求,这种情况也会降低。如果是我,我可能会考虑创建一个 tmpfs,然后使用包含要缓存的内容的存储设备文件系统创建一个 unionfs - 而不是搞乱符号链接(但您仍然需要填充它。

一个更简单的解决方案是使用 tmpfs 作为 bcache 设备。 (但请确保在启动过程中销毁并重建 bcache)。

问题 2:您可以采取一些措施来调整 VFS,但我怀疑它们不会产生太大影响。

问题 3:绝对不是 - 如果您在电源周期之间保留缓存,您将获得最佳的使用效果 - 即使用休眠到磁盘而不是关闭/重新启动 - 并且这(通常)使用交换。

答案2

Linux 有不同的预读程序,可以预取磁盘内存。它们被称为例如readahead-fedorapreload

它也systemd-readahead适用于基于 systemd 的 init 系统,但在更新的版本中再次被删除。

答案3

在这种情况下,完全禁用交换分区是一个好主意,对吧?

是的,您可以将交换区从 HDD/SDD 移至 RAM。最新的 Linux 内核内部包含 ZRAM 模块,因此您可以使用 RAM 中的交换区。这将为您带来更快的交换操作速度,但有时会增加 CPU 负载。

您可以在以下位置阅读相关内容:https://wiki.debian.org/ZRam

相关内容