当 Linux 服务器的内存不够使用时,可以文件或者分区来当作虚拟内存,比如在测试机或者自己学习用的机器上,跑的服务比较多,又没有必要搞那么好(贵)的机子,添加swp交换空间也是一个不错的选择。
首先查看当前的内存和swap空间> free -m
total used free shared buff/cache available
Mem: 15885 5149 4126 0 6609 10378
Swap: 0 0 0
查看分区情况,创建swap交换文件
通过df -h命令查看当前硬盘的分区与使用情况,根据情况选择目录。
通过 dd 命令创建一个swap交换文件dd if=/dev/zero of=/home/swap bs=1M count=2048
if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。
of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。
bs 代表字节为单位的块大小。
count 代表被复制的块数。
/dev/zero 是一个字符设备,会不断返回0值字节(\0)。
通过上边命令,创建了一个大小为 2G 的交换文件。
制作为swap格式文件并挂载mkswap /home/swap
swapon /home/swap
我们用free -m命令看一下,发现已经有交换分区了。> free -m
total used free shared buff/cache available
Mem: 15885 5149 4126 0 6609 10378
Swap: 2047 277 1770
但是现在如果重启服务器,交换分区又会变成0。
为防止重启后swap分区变成0,要修改/etc/fstab文件,以便在引导时启用。vi /etc/fstab
在文件末尾(最后一行)加上/home/swap swap swap default 0 0
停止使用交换分区
通过使用 swapoff 命令停止使用交换分区,停止后可直接通过rm -f命令删除交换文件。swapoff /home/swap