1、Linux在内存被用完之前开始交换。这是为了提高性能和响应能力:
性能提高是因为一些内存放磁盘缓存比方内存更合适。因此,最好将一个已经停用了一段时间的程序交换出去,而将经常使用的文件保存在缓存中。
当系统处于空闲状态时,而不是当内存满时,一些程序正在运行并请求更多的RAM来完成任务时,响应能力会得到改善。
2、如何在有内存可用的时候,不使用swap呢?
修改swappiness:
swappiness,Linux内核参数,控制换出运行时内存的相对权重。swappiness参数值可设置范围在0到100之间。 低参数值会让内核尽量少用交换;
现在一般1个G的内存可修改为10, 2个G的可改为5, 甚至是0。
cat /proc/sys/vm/swappiness 查看参数值
修改swappiness值为10
sudo sysctl vm.swappiness=10
但是这只是临时性的修改,在你重启系统后会恢复默认的60,为长治久安,还要更进一步:
sudo vim /etc/sysctl.conf
在这个文档的最后加上这样一行:
vm.swappiness=10
然后保存,重启。ok,你的设置就生效了。
3、为什么不建议关闭swap?
即使您有足够的内存,也不建议关闭交换器。如果您的服务器需要更多的内存,但它没有获得内存,它将崩溃。但是,当您有一个交换区域时(在某种程度上)可以避免这种情况。
是的,当使用交换时,您的服务器性能会降低,但至少它是可操作的和可访问的。然后,如果您的服务器开始使用交换,您可以计划在需要时添加更多的内存。