增加swap(文件)

创建swap

生成一个空文件(2048M)

1
2
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
sudo chmod 600 /swapfile

标记成swap文件

1
sudo mkswap /swapfile

手动挂载swap

1
2
3
4
5
挂载: 
sudo swapon /swapfile

卸载:
sudo swapoff /swapfile

开机自动挂载

vim /etc/fstab添加一行

1
/swapfile   swap  swap  defaults  0  0

删除swap(文件)

查看swap文件地址

1
swapon

手动关闭swap

1
sudo swapoff /swapfile

删除swap文件

1
sudo rm -f /swapfile

取消开机自动挂载

vim /etc/fstab, 删除包含swapfile的一行

删除swap(LVM分区)

判断是否是LVM分区

LVM分区做swap,如果你用centos7 默认安装的话, 就是用的LV做swap,可以 cat /etc/fstablvdisplay 确认下
image.png

image.png

上图所示, 就是用的lv做swap分区

关闭swap

马上关闭:

1
swapoff -a

修改配置永久关闭:
vim /etc/fstab 删除包含swap的那一行

保守一点,如果swap占用空间不要了,lvm也不动了,那么就到此为止就行。

删除swap的LV

1
2
# lvremove <vg名字> <lv名字>
lvremove centos swap

扩容剩下的LV

1
lvextend -l +100%FREE /dev/mapper/centos-root

动态增加磁盘大小

1
sudo resize2fs  /dev/sdb1
1
sudo xfs_growfs /dev/sdb1

在早期的RHEL中,由于resize2fs无在线resize功能,故额外提供了ext2online。

1
sudo ext2online /dev/sdb1

修改内核参数

CentOS7 系统修改 /etc/default/grub

image.png

然后执行:

1
grub2-mkconfig -o /boot/grub2/grub.cfg

更新grub配置

如果你已经删除了LV,但是忘记修改内核参数了,那么重启后会无法启动,解决方法见:centos删除swap后无法启动

调整内核 swap 策略

swap 使用是根据内核参数 vm.swappiness 决定的, 数值越大表示内核会更加积极的将内存中的数据移动到Swap分区

vm.swappiness 含义
0 指示内核尽可能避免交换。
10-50 指示内核在换出内存页面时稍微积极一些
50-100 指示内核在换出内存页面时适度积极
100 指示内核在换出内存页面时非常积极

查看内核参数

1
2
sysctl -a
sysctl vm.swappiness

临时修改

方法一

1
sysctl vm.swappiness=100

方法二

1
echo "100" > /proc/sys/vm/swappiness

永久修改

vim /etc/sysctl.conf

1
vm.swappiness = 100

执行 sysctl -p 马上生效。