什么是swap
Linux中的Swap即为系统交换区,类似于Windows的虚拟内存,当内存不足的时候,把一部分磁盘空间虚拟成内存使用,以解决内存容量不足的情况。
swapon,则是启动系统交换区(swap area)。Linux系统的内存管理必须使用交换区来建立虚拟内存。
swap内存交换的功能是:当有数据被存放在物理内存里面,但是这些数据又不是常被CPU所取用时,那么这些不常被使用的程序将被丢到硬盘的swap交换空间中,而将速度较快的物理内存空间释放出来给真正需要的程序使用。所以,如果你的系统不是很忙,而内存又很大,自然不需要swap。
什么时候用到swap
上面已经说到,如果系统内存够大,那么是不需要设置swap的。但是有些场景下就需要设置swap来帮助系统工作,比如在一些低内存的板子上(实际场景是在内存为2G的瑞芯微rk3568板子)编译安装dlib,就需要设置swap。
交换分区设置大小建议
|
内存 |
交换分区 |
|
2G或者以下 |
两倍的内存 |
|
2G~8G |
同等内存 |
|
8~64G |
至少4G |
|
64G以上 |
至少4G |
如何设置swap
设置swap有两种方式:
- 设置一个swap分区
- 创建一个虚拟内存的文件
这里第一种方式后续介绍,我们来介绍如何创建一个虚拟内存的文件
- 创建一个4G的交换空间:
fallocate -l 4G /var/swapfile
- 给文件区设置权限
chmod 600 /var/swapfile
- 设置交换分区
mkswap /var/swapfile
- 启动交换分区
swapon /var/swapfile
- 刷新交换分区
swapon -s
- 查看内存
free -m

在swap行中就能看到交换分区的总量、已使用量和空余量
- 关闭交换分区
swapoff/var/swapfile
- 设置开机挂载
在/etc/fstab底部增加“/var/swapfile swap swap defaults 0 0”
vim/etc/fstab
/var/swapfile swap swap defaults 0 0
参考:
debian11设置系统交换区Swap_debian11设置虚拟内存-debian 11系统教程-热主机
Linux系统配置交换分区_江湖有缘的博客-CSDN博客_linux交换分区