Linux上创建SWAP文件/分区

很久很久以前,电脑的内存是个珍贵东西,于是乎就有了swap这个东西,简单来说就是内存不够用的时候,用硬盘空间顶上。这个分区在近些年来已经越来越不受大家的待见了,主要是因为现在内存比较宽裕,但是在小内存的VPS上,还是有自己的用武之地的,特别是当看到内存不足之类的错误出现在log中的时候,可以尝试创建swap来分担一下内存的压力。

swap无法替代物理内存,性能上也会差很多,在SSD硬盘上使用对读写性能会有所加成。另外本文是通过创建一个swap文件来充当交换空间的作用,与Partition方法不同。

  1. 查看内存的情况(此时swap行为0)

free -m
这里写图片描述
初始时Swap 相关数据都是0。
2. 创建swap文件(本文创建了2G),并使之生效
a.创建用于交换分区的文件:
dd if=/dev/zero of=/swapfile bs=1M count=2048
注:block_size、number_of_block 大小可以自定义,比如 bs=1M count=1024 代表设置 1G 大小 SWAP 分区。
b.设置交换分区文件:
mkswap /swapfile
这里写图片描述
c.立即启用交换分区文件:
swapon /swapfile
这个命令可能会提示“swapon: /swapfile: insecure permissions 0644, 0600 suggested.”,意思是建议把swap设置成644或600权限。
3. 这时运行free -m会发现swap一列已经有数字了,就是上面第一次执行free -m 后的结果。
注:如果在 /etc/rc.local 中有 swapoff -a 需要修改为 swapon -a
4. 在 /etc/fstab 中添加如下一行,使之永久生效
/swapfile swap swap defaults 0 0
5. 修改 swpapiness 参数
在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。
查看修改前为 0,需要在物理内存使用完毕后才会使用 SWAP 分区。
可以使用下述方法临时修改此参数,假设我们配置为空闲内存少于 10% 时才使用 SWAP 分区:
echo 10 >/proc/sys/vm/swappiness
若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:
vm.swappiness=10


关闭 SWAP

当系统出现内存不足时,开启 SWAP 可能会因频繁换页操作,导致 IO 性能下降。如果要关闭 SWAP,可以采用如下方法。
1、free -m 查询 SWAP 分区设置:

2、使用命令swapoff 关闭 SWAP,比如:
swapoff /mnt/swap

3、修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载:

4、 通过 free -m 确认 SWAP 已经关闭。

5、 swappiness 参数调整:
可以使用下述方法临时修改此参数,这里配置为 0%:
echo 0 >/proc/sys/vm/swappiness
若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf文件,并增加以下内容:
vm.swappiness=0


操作过程中还遇到了其他问题,暂时没解决掉:
执行swapon 时,提示swapon: /mnt/swap Device or resource busy
第二次执行dd 命令时,提示:dd: failed to open ‘/mnt/swap’: Text file busy
网上也没找到解决方案。有解决的朋友可以指点下。

  • 12
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天进步一点_点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值