永久关闭掉交换安全吗?


54

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

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

在此处输入图片说明


1
您确定Ubuntu在完全使用ram之前就使用交换了吗?free -m的输出是什么?通常,由于Ubuntu尝试尽可能多地使用ram,因此关闭交换不会有什么不同,并且不应该使用ram并使用swap也不应该发生。
ste_kwr'2

2
仅供参考,我没有交换带有单个SSD的8GB系统的信息。
Lekensteyn'2

3
您可以关闭应该没问题的交换,也可以调整交换值。可以在/ proc / sys / vm / swappiness中找到它。使用“ sysctl”进行更永久的更改。要注意的一件事是休眠需要交换。我认为睡眠并不是真的需要,但休眠确实需要。
Marky 2012年

@kniwor是的,我做到了,在2.5 GB RAM之后...使用了swap,我必须重新启动然后我的系统才能正常运行。和1 GB后的一段时间,我的系统变慢了
2012年

@我已经检查了5至6次
1零

Answers:


94

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

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

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

one@onezero:~$ cat /proc/sys/vm/swappiness
60

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

vm.swappiness = 10

重新启动以使更改生效

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

sysctl vm.swappiness=10

您还可以通过运行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

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

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


11
+1这是配置交换的绝佳方法。好答案。您甚至可能会发布一个新问题,询问“我如何配置交换能力”并复制此答案,因此其他人更容易找到它。人来到这个问题将要寻找“是或否”的答案,你是如何对那些已经选择了的人“是”
汤姆Brossman


11
这虽然是有用的指南,却不能回答问题。询问者想知道它是否安全而不是如何去做。
Fouric 2013年

2
@InkBlend甚至更奇怪,这个非答案
underscore_d

无论如何,非常感谢您的小费。使用此Ubuntu lappy是一个全新的世界。
Don Pflaster

17

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

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

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

如果您有大量RAM(您的4GB + VM正在运行)是可以的。

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

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


1

不,这不安全。原因是,当系统用完RAM并且无法交换任何RAM时,它可能会死机,除了进行硬重置以外,没有恢复的机会。这不仅仅是关于是否可以挂起。
资料来源:我的14.04做到了。

您应该保留最少的交换空间,请查看Ubuntu FAQ中的数字。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.