在 Linux 下创建、优化、删除 Swap 分区
Linux 上的使用需求越来越高,这篇记录我在折腾 Linux 的 Swap 上的一些操作。
以下操作需要在 root 账户下操作
新建 Swap 分区
查看内存占用情况
1 | free -h |
发现 Swap 分区并未分配交换分区
新增一个 Swap 文件
1 | # 创建一个 swapfile 到 / 目录,大小为 2G |
- /dev/zero 无限填充 0 (0x00)
- of 文件输出位置
- bs 块大小 1K、1M、1G
- count 块数量
- 文件的总大小 = bs*count(块大小x块数量)
Swap 文件创建成功返回结果
1 | root@fastchen:~# dd if=/dev/zero of=/swapfile bs=1M count=2048 |
修改文件权限
1 | chmod 0600 /swapfile |
将刚才创建的 swapfile
格式化为交换分区文件
1 | mkswap /swapfile |
成功返回结果
1 | root@fastchen:~# mkswap /swapfile |
启用 Swap 分区
创建完毕 Swap 后,需要启用和开启自动启用。
启用 Swap
1 | swapon /swapfile |
通过 free -h 查看是否成功启用
1 | root@fastchen:~# free -h |
设置开启自动启用 Swap
1 | vim /etc/fstab |
新增一行
1 | /swapfile swap swap defaults 0 0 |
- /swapfile swap 文件路径
- swap 文件类型
- swap 标签
- defaults mkswap的默认参数
- 0 0 开始与结束位置
调整 Swap 使用优先级
通过调整使用优先级可以控制物理内存与虚拟内存直接的平衡
一般情况没有特殊需求可以不用调整,而且会影响性能。
先查看当前优先级数值
1 | cat /proc/sys/vm/swappiness |
根据使用情况可自行调整
数值范围:0 - 100 越大越积极使用 Swap
临时修改 (重启失效)
1 | sudo sysctl vm.swappiness=80 |
永久修改
1 | vim /etc/sysctl.conf |
找到 vm.swappiness
修改 = 号后面的数值即可
如果没有可以手动增加
1 | vm.swappiness = 数值 |
修改完毕后如果没有生效则需要重启系统
删除 Swap 分区
停止当前 Swap 分区
1 | swapoff /swapfile |
删除 Swap 文件
1 | rm /swapfile |
删除开机启动
1 | # 编辑文件 |
通过 free -h
检查结果