永久关闭交换是否安全?

One*_*ero 59 swap

我的系统越来越慢,尤其是当我使用 Firefox / Chromium 和虚拟机等浏览器时。我注意到我至少有 3.2 GB 的可用 RAM(使用 Gnome 系统监视器)并且没有交换。

我现在所做的是swapoff -a,系统系统性能提高了 30%。所以我的问题是:使用安全swapoff吗?我的电脑重新启动是否安全swapoff

在此处输入图片说明

One*_*ero 100

Linux 内核提供了一个可调整的设置来控制交换文件的使用频率,称为 swappiness

交换设置为零意味着除非绝对必要(内存不足),否则将避免使用磁盘,而交换设置为100意味着程序将几乎立即交换到磁盘。

Ubuntu 系统默认为 60,这意味着如果内存使用量大约是我 RAM 的一半,交换文件将被经常使用。您可以通过运行以下命令来检查您自己系统的 swappiness 值:

one@onezero:~$ cat /proc/sys/vm/swappiness
60
Run Code Online (Sandbox Code Playgroud)

因为我有 4 GB 的 RAM,所以我想把它调低到 10 或 15。只有当我的 RAM 使用率约为80 %或90 %时才会使用交换文件。要更改系统交换值,请打开/etc/sysctl.conf as root。然后,将此行更改或添加到文件中:

vm.swappiness = 10
Run Code Online (Sandbox Code Playgroud)

重新启动以使更改生效

您还可以在系统仍在运行时更改该值

sysctl vm.swappiness=10
Run Code Online (Sandbox Code Playgroud)

您还可以通过运行swapoff -a然后swapon -a以 root 身份而不是重新启动来清除交换以达到相同的效果。

计算您的掉期公式

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953
Run Code Online (Sandbox Code Playgroud)

所以总数是 3950 / 100 = 39.5 * 10 = 395

所以这意味着当剩下10% 395 MB 的内存时,它开始使用 swapiness

  • 这虽然是一个有用的指南,但并没有回答这个问题。提问者想知道*是否安全*,**不**如何去做。 (13认同)
  • +1 这是配置交换的绝佳方法。很好的答案。您甚至可以发布一个新问题,询问“如何配置 swappiness”并复制此答案,以便其他人更容易找到。来到这个问题的人们将寻找“是或否”的答案,您的答案是已经选择“是”的人的指南 (11认同)
  • @InkBlend 更奇怪的是,这个不回答_是**由**提问者提出的。_ (2认同)

Tom*_*man 19

大概。您应该在这里阅读 Ubuntu常见问题页面的“我为什么需要交换”部分,并自行判断。

如果您重视安全网交换可以提供的速度,则应禁用它

如果您从不挂起到磁盘并始终关闭并重新启动,您可以安全地禁用它。

如果您有大量 RAM(您的 4GB + 虚拟机正在运行是一个势均力敌的电话),那么您可以。

对我来说,我的操作系统在 SSD 上,8GB RAM 并且从不挂起。我不需要交换,从未见过它在使用中,我只是出于习惯在安装时进行了设置。

作为替代方案,这里是Lifehacker对 Firefox 的 about:config 调整,解释了如何仅将 RAM 用于浏览器缓存。在尝试之前,请阅读文章底部链接的反驳。