swap空间占用过高解决方案
1 简介
Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
1.1 Linux的swap原理
1、 控制swap使用的系统参数:swappiness
Swappiness:表示使用物理内存限度
Swappiness为0(100%-0=100%)表示物理内存使用到100%的时候使用swap空间
Swappiness为60(100%-60%=40%)表示物理内存使用到40%的时候使用swap空间
如果swappiness设置太大(内存的速度会比磁盘快很多),这样子会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,对该参数进行调整。
2、 Linux默认swappiness
默认为60,也就是说当物理内存使用到40%的时候开始使用swap。
2 解决
2.1 调整swappiness参数
2.1.1 临时调整
2.1.2 久调整
1、设置
2、激活
2.2 增加swap空间
当以上方法无法解决问题,或者机器内存消耗大,添加内存,swap也要相应扩展。
1、 查看swap****空间
2、 查看/dev/zero
此/dev/zero一共就1.9G所以添加swap空间不可以超过1.9G
解释:/dev/zero也是一个伪文件,但它实际上产生连续不断的null的流(二进制的零流,而不是ASCII型的)。写入它的输出会丢失不见,/dev/zero主要的用处是用来创建一个指定长度用于初始化的空文件,像临时交换文件。可以用来创建swap。
3、 新建swap****分区空间
注意:创建好的交换文件不能删除,所以要提前找到一个目录。
解释:of为文件名。Bs为单个大小。Count为数量。我创建了一个1G的文件。
4、 mkswap****创建交换文件
5、 swapon****激活
6、 验证
7、 开机启动
由于以上操作为临时生效,服务器重启会失效。所以要设置开机启动。
8、 其他操作
a) 停用:swapoff swapfile
b) 删除:rm –rf swapfile
c) 删除随即启动swap:vi /etc/fstab
作者:橡皮24