Linux虚拟内存swap
增加 swap(文件)
创建 swap
生成一个空文件(2048M)
1 | # 创建一个2G的swap文件 |
标记成 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 许可协议。转载请注明来源 杂烩饭!
评论