Linux 中 Swap 交换分区虚拟内存设置教程,删除Swap虚拟内存

发布于 2022-09-04  177 次阅读


老王最近有一台 VPS 一直报内存占用太高,所以想看看 Linux Swap 交换分区功能,用硬盘空间换内存空间。本文分享下 Linux 中 Swap 交换分区设置教程,以及我们在设置 Swap 分区时,如何决定 Swap 的大小。

一、Swap 分区是什么

Swap(Swap 分区、Swap 内存),中文名是交换分区,类似于 Windows 中的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。

因此,Swap 分区的作用就是牺牲硬盘,增加内存,解决 VPS 内存不够用或者爆满的问题。

二、Swap 分区大小选择

Swap 合理的大小是与 VPS 的物理内存有关的,目前老王找到一个比较靠谱的关系表(Red Hat Enterprise Linux):

  1. 内存 <= 4g:Swap 至少 4G
  2. 内存 4~16G:Swap 至少 8G
  3. 内存 16G~64G:Swap 至少 16G
  4. 内存 64G~256G:Swap 至少 32G

老王有一台 2GB 的 VPS,最开始 Swap 是 2GB,后来升级成了 4GB,内存占用如下图所示,效果非常明显:

三、Swap 分区设置教程

1.查看 Linux 当前分区情况:

free -m

如果是增加 swap 分区,则先把当前所有分区都关闭了:

swapoff -a

可能遇到的问题:《解决 swapoff failed: Cannot allocate memory 无法关闭分区的问题

2.创建要作为 Swap 分区文件(其中 /var/swapfile 是文件位置,bs*count 是文件大下,例如以下命令就会创建一个 4G 的文件):

dd if=/dev/zero of=/var/swapfile bs=1M count=4096

3.建立 Swap 的文件系统(格式化为 Swap 分区文件):

mkswap /var/swapfile

4.启用 Swap 分区:

swapon /var/swapfile

5.查看 Linux 当前分区:

free -m

如果有 Swap 就说明创建成功了:

6.设置开启启动,在 /etc/fstab 文件中加入一行代码:

/var/swapfile swap swap defaults 0 0

快捷添加:交换内存-创建1GB SWAP

自己瞎鸡吧写的 创建1GB SWAP 省的自己慢慢敲了


cd /opt
sudo dd if=/dev/zero of=swapfile bs=1024 count=1000000
sudo mkswap swapfile
swapon /opt/swapfile
/opt/swapfile swap swap defaults 0 0