Linux虚拟内存swap
增加swap(文件)
创建swap
生成一个空文件(2048M)
1 | sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 |
标记成swap文件
1 | sudo mkswap /swapfile |
手动挂载swap
1 | 挂载: |
开机自动挂载
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/fstab
和 lvdisplay
确认下
上图所示, 就是用的lv做swap分区
关闭swap
马上关闭:
1 | swapoff -a |
修改配置永久关闭:vim /etc/fstab
删除包含swap的那一行
保守一点,如果swap占用空间不要了,lvm也不动了,那么就到此为止就行。
删除swap的LV
1 | # lvremove <vg名字> <lv名字> |
扩容剩下的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
然后执行:
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 | sysctl -a |
临时修改
方法一
1 | sysctl vm.swappiness=100 |
方法二
1 | echo "100" > /proc/sys/vm/swappiness |
永久修改
vim /etc/sysctl.conf
1 | vm.swappiness = 100 |
执行 sysctl -p
马上生效。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 杂烩饭!
评论