openvz增加swap分区

前言

openvz的廉价小鸡使用常规的增加swap方式会报错:
failed: Operation not permitted
基于此,我们使用如下方式,进行swap的添加。

环境

Ubuntu 16.04 LTS (GNU/Linux 2.6.32-042stab116.2 x86_64)
Ubuntu 20.04.1 LTS x86_64

openvz 120M内存/256内存

操作

查看内存剩余

root@webhk:~# free -m
              total        used        free      shared  buff/cache   available
Mem:            256         138           4           1         113         115


编写增加内存脚本

vim mkswap.sh

填入

#!/bin/bash

SWAP="${1:-512}"

NEW="$[SWAP*1024]"; TEMP="${NEW//?/ }"; OLD="${TEMP:1}0"

umount /proc/meminfo 2> /dev/null
sed "/^Swap\(Total\|Free\):/s,$OLD,$NEW," /proc/meminfo > /etc/fake_meminfo
mount --bind /etc/fake_meminfo /proc/meminfo

保存后,赋予执行权限

chmod +x mkswap.sh

增加swap,下面768单位为M,可自定义,缺省为512

sudo ./mkswap.sh 768

查看是否增加

root@webhk:~# free -m
              total        used        free      shared  buff/cache   available
Mem:            256         138           4           1         113         115
Swap:           768           0         768


取消swap分区

sudo ./mkswap.sh 0

参考文档:https://cndaqiang.github.io/2017/09/28/openvz-swap/