swap虚拟内存设置方法

最近,发现网站的数据库连接不上,而且持续有一段时间了。主要还是平时太少管理网站,所以隔了几天才发现。 重启后,数据库恢复正常,但一分钟不到,内存不足,又挂了。 经过排查,原来是没使用swap虚拟内存。开启后,妥妥的稳定运行。

关闭配置文件/etc/fstab中所有的交换空间

sudo swapoff -a

一、创建交换分区的文件:增加2G大小的交换分区

sudo dd if=/dev/zero of=/var/swapfile bs=1M count=2048
  • if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。
  • of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。
  • bs 代表字节为单位的块大小。
  • count 代表被复制的块数。
  • /dev/zero 是一个字符设备,会不断返回0值字节(\0)。

块大小可以使用的计量单位表

单位

大小

代码

字节

1B

c

字节

2B

w

512B

b

千字节

1024B

k

兆字节

1024KB

M

吉字节

1024MB

G

二、设置交换分区文件

sudo mkswap /var/swapfile

三、启用交换分区

sudo swapon /var/swapfile

四、写入/etc/fstab,以便在引导时启用

echo '/var/swapfile swap swap defaults 0 0'>>sudo /etc/fstab

五、查看swap的情况

扩容或缩容swap内存大小

1、查看swap空间和使用情况

2、关闭swap

3、缩小swap分区

lvreduce -L 1G /var/swapfile

mkswap /var/swapfile

swapon -s

swapon /var/swapfile

swapon -s

4、增大swap分区

新建分区方法来增大swap

dd if=/dev/zero of=/var/swap bs=1G count=10

 mkswap /var/swap

swapon /var/swap

swapon -s

free -m

重启系统以后swap还是会变回去,这里需要修改/etc/fstab
增加:/var/swap swap swap default 0 0

删除之前的swap分区

swapoff /var/swapfile

rm -rf /var/swapfile

echo "/var/swap swap swap default 0 0" >>/etc/fstab

修改swappiness

swappiness参数值说明

vm.swappiness = 0 仅在内存不足的情况下--当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间。 
vm.swappiness = 1 内核版本3.5及以上、Red Hat内核版本2.6.32-303及以上,进行最少量的交换,而不禁用交换。 
vm.swappiness = 10当系统存在足够内存时,推荐设置为该值以提高性能。 
vm.swappiness = 30默认值
vm.swappiness = 100 内核将积极的使用交换空间

# sysctl -q vm.swappiness

或者
# sysctl -a | grep vm.swappiness 查看swappiness
vm.swappiness = 30


# echo 10 > /proc/sys/vm/swappiness 临时修改
# sysctl -a | grep vm.swappiness
# vm.swappiness = 10
# sysctl -w vm.swappiness=10 临时修改
vm.swappiness = 10
# cat /proc/sys/vm/swappiness

在/etc/sysctl.conf中编辑,增加如下参数(如果存在的话)
vm.swappiness = 10 永久修改 

激活设置:sysctl -p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值