举杯邀月

Linux 添加 Swp 虚拟内存交换空间

摘要:当 Linux 服务器的内存不够使用时,可以文件或者分区来当作虚拟内存,比如在测试机或者自己学习用的机器上,跑的服务比较多,又没有必要搞那么好(贵)的机子,添加swp交换空间也是一个不错的选择。

当 Linux 服务器的内存不够使用时,可以文件或者分区来当作虚拟内存,比如在测试机或者自己学习用的机器上,跑的服务比较多,又没有必要搞那么好(贵)的机子,添加swp交换空间也是一个不错的选择。

首先查看当前的内存和swap空间

>  free -m
              total        used        free      shared  buff/cache   available
Mem:          15885        5149        4126           0        6609       10378
Swap:             0           0           0
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4

更多关于 free 命令的操作,参考linux 常用命令 free,显示内存的使用情况

查看分区情况,创建swap交换文件

通过df -h命令查看当前硬盘的分区与使用情况,根据情况选择目录。

通过 dd 命令创建一个swap交换文件

dd if=/dev/zero of=/home/swap bs=1M count=2048
1
1
1
1
1
1
  • if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。
  • of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。
  • bs 代表字节为单位的块大小。
  • count 代表被复制的块数。
  • /dev/zero 是一个字符设备,会不断返回0值字节(\0)。

通过上边命令,创建了一个大小为 2G 的交换文件。

制作为swap格式文件并挂载

mkswap /home/swap
swapon /home/swap
1
2
1
2
1
2
1
2
1
2
1
2

我们用free -m命令看一下,发现已经有交换分区了。

> free -m
              total        used        free      shared  buff/cache   available
Mem:          15885        5149        4126           0        6609       10378
Swap:          2047         277        1770
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4

但是现在如果重启服务器,交换分区又会变成0。

为防止重启后swap分区变成0,要修改/etc/fstab文件,以便在引导时启用。

vi /etc/fstab
1
1
1
1
1
1

在文件末尾(最后一行)加上

/home/swap swap swap default 0 0 
1
1
1
1
1
1

停止使用交换分区

通过使用 swapoff 命令停止使用交换分区,停止后可直接通过rm -f命令删除交换文件。

swapoff /home/swap
1
1
1
1
1
1

作者:举杯邀月

出处: http://www.hug-code.cn/archives/5fca028c5d366.html

2020-08-19 标签: linux