求教关于swap交换的触发条件与规避swap的技巧

(HFJL) #1

笔记本8G内存,已经在 /etc/sysctl.conf 里把vm.swappiness改成0了,重启了。但还是用了1.4G内存左右(只开了konsole+chromium)系统就开始启用swap了,而且有0.7G之多。

有人知道为什么系统那么早就swap了吗?又该怎么规避?
当时装系统的时候安装程序给我的划分方案只有2G的swap空间,没细看就next了,后悔 :sob:

(恋衣之曲) #2

内存满了或者进行过休眠,如果交换分区不够用可以用交换文件。
https://wiki.archlinux.org/index.php/Swap_(简体中文)#建立交换文件

(HFJL) #3

谢谢!
swapoff -a 就可以暂时禁用交换了。
但为什么 在内存占用很少的时候就启用交换区 仍然很奇怪。

(鹤仙人) #4

因为有些数据不常用,内核就自动把它们转移到 swap 了。就像你有 100 平米大房子,但是旧家具还是扔进仓库了,而不是留在房子里碍事。这些数据通常只有 <200MB。你这个确实有点多。

(驿窗) #5

vm.swappiness的值不用0,用示例的30有什么效果?

#6

我的也是8G内存,8Gswap,开chrome N个页,都看不清了,内存没满,swap也不用。。。
另外,tw的kde,真心占用内存少,我装过openuse xfce逗比kde占内存多

(runapp) #7

但是swappiness是0啊,按理说除非应用主动要求,不应该会挪到swap里的

(HFJL) #8

有两篇文章可以看看,
https://blog.csdn.net/wh8_2011/article/details/51798407
https://blog.csdn.net/qq_25189001/article/details/51325152

(system) 于关闭 #9

本主题在最后一个回复创建后60分钟后自动锁定。不再允许添加新回复。

(Grover Chou) 于打开 #10
(runapp) #11

今天突然看到cgroup的memory.swappiness可以做到绝对禁用swap,但是看起来好像是就算内存不够也不会swap的样子,供参考。
https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt ,5.2节
或者看这个 https://segmentfault.com/a/1190000008125359#articleHeader12 中文版

#12

我再ssd里装 大蜥蜴,直接不分swap分区了,然后搞了16G内存,我就不信它还能用swap:rofl: