为小内存VPS服务器添加swap

下面介绍一下为小内存VPS服务器添加SWAP的方法KVM/OpenVZ

首先查看系统磁盘空间大小, 是否有剩余空间来添加到swap。

swap.jpg

查看当前SWAP大小,127M。

[root@OpaqueNormal-VM ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            110          50           2           0          58          34
Swap:           127          33          94

根据剩余硬盘大小来按需分配swap

KVM添加SWAP方法

创建 SWAP文件

[root@OpaqueNormal-VM var]# dd if=/dev/zero of=/var/swap bs=1024 count=256000
256000+0 records in
256000+0 records out
262144000 bytes (262 MB) copied, 1.92829 s, 136 MB/s

bs 是字节数,这里是1024 B,count 是blocks块数,of 是要输出的SWAP交换区文件,可以自定
所以: bs=1024 B=1 KB,256000 * 1 KB=256000 KB / 1024 ≈ 256 MB

dd if=/dev/zero of=/var/swap bs=1024 count=256000

查看文件是否创建成功

    [root@OpaqueNormal-VM var]# du -ah /var|grep "swap"
    251M        /var/swap

建立 SWAP文件

    [root@OpaqueNormal-VM var]# mkswap /var/swap
Setting up swapspace version 1, size = 255996 KiB
no label, UUID=59581100-6740-4b5f-b078-18b6c5bc4f68

启用 SWAP文件

    [root@OpaqueNormal-VM var]# swapon /var/swap
swapon: /var/swap: insecure permissions 0644, 0600 suggested.

查看是否生效, swap已由127M, 变成377M了。(内存或硬盘空间大小的算法差异, 会有一定区别。)

 [root@OpaqueNormal-VM var]# free -m
              total        used        free      shared  buff/cache   available
Mem:            110          35           3           0          71          49
Swap:           377          47         330

设置开机自动加载

echo "/var/swap swap swap defaults 0 0" >> /etc/fstab

需要取消添加的swap的时候,就需要先关闭已经开启的 SWAP, 取消开机自动挂载, 最后删除文件即可。
取消 SWAP文件

swapoff /var/swap

取消 开机启动加载

sed -i "/swap/d" /etc/fstab

删除 SWAP文件

rm -rf /var/swap
OpenVZ 添加SWAP的方法

OpenVZ的小鸡添加SWAP需要用脚本来实现
创建脚本

vim swap.sh

脚本内容如下:

#!/bin/bash
#Addition SWAP For OpenVZ
echo 'Start adding SWAP space ......';
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
echo 'Add the ready!';

其中512为SWAP的大小

给脚本添加执行权限

chmodc  +x swap.sh

执行脚本

sh /root/swap.sh

执行完毕可以检查是否成功free -m

free -m

脚本添加开机自启动

vim /etc/rc.local 

在对应位置加入 /root/swap.sh


Leave a Comment