SWAP分区是用来进行进程调度,把当前不用的进程调成‘等待(standby)‘,甚至‘睡眠(sleep)’,一旦要用,再调成‘活动(active)’,睡眠的进程就躺到SWAP分区,把内存空出来让给‘活动’的进程。
可以手动设置swap分区是‘积极使用’还是‘尽量不使用’
swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。其默认值是60 。而要查看当前系统设置的值可以通过如下方法:
sysctl -a|grep vm.swapp
临时修改
sysctl vm.swappiness=10 #填写你希望的值
永久修改
echo 'vm.swappiness=10' >> /etc/sysctl.conf sysctl -p
其实就是在/etc/sysctl.conf文件里添加如下参数
vm.swappiness=10
注:按以两种方法任一种操作后,通过free -m查看时,会发现目前的内存使用情况并不会有多大的改变(除非你有新的程序启用)。原因很简单,当前的设置并未对已经运行的进程有效。这就需要我们重启主机或者重启最大占用内存的进程,使其使用当前的配置。