SWAP 是一个分区或磁盘空间,可以为 RAM 承担一些负载,并且可以用作 Ubuntu 系统上的内存空间。 通常,在安装新的基于 Linux 的操作系统时,它会为您提供创建新的 SWAP 分区。 文件分区有一个SWAP标志,通常一个SWAP空间的大小平均为2GB。 当系统内存已满时,Linux 内核会自动将一些未使用的文件移动到 SWAP 区域,而不是停止它们。 众所周知,在 Linux 中,一切都是文件,SWAP 可以很好地处理文件。 因此,如果您在虚拟机上使用 Ubuntu 系统,您绝对应该尝试在您的机器上添加 SWAP 空间。
Ubuntu Linux 中的交换空间
您可能会问,我应该为 SWAP 空间使用多少存储空间? 由于 SWAP 可以承担额外的 RAM 负载,我可以根据需要分配尽可能多的 SWAP 吗? 好吧,这是标准公式。 如果您的机器上有超过 2GB 的物理 RAM,建议您使用 SWAP。
如果您有更多的物理内存,您也可以使用 SWP。 您应该使用的 SWAP 数量取决于您拥有多少实际 RAM。 请按照下表了解 RAM-SWAP 比率。 在这篇文章中,我们将看到如何在 Ubuntu 系统中添加一个 SWAP 空间。
内存大小 | 交换大小(无休眠) | 交换大小(休眠) |
---|---|---|
256MB | 256MB | 512MB |
512MB | 512MB | 1GB |
1GB | 1GB | 2GB |
2GB | 1GB | 3GB |
3GB | 2GB | 5GB |
4GB | 2GB | 6GB |
6GB | 2GB | 8GB |
8GB | 3GB | 11GB |
12GB | 3GB | 15GB |
16 GB | 4GB | 20GB |
24GB | 5GB | 29GB |
32GB | 6GB | 38GB |
64GB | 8GB | 72GB |
128GB | 11GB | 139GB |
第 1 步:检查 Ubuntu 上的当前系统交换空间
在您开始在基于 Ubuntu 和 Debian 的系统上创建新的 SWAP 空间之前,请确保系统上没有现有的 SWAP 空间。 您可以使用下面给出的任何以下命令来检查 Ubuntu 机器上的 SWAP 空间。
sudo swapon -s sudo swapon --show
在终端 shell 中,您可以看到 SWAP 被称为“文件类型”,因为在 Linux 中,一切都是文件。
第 2 步:在 Ubuntu 上创建交换文件
在此步骤中,我们将使用 allocate 命令分配特定空间作为 SWAP 文件。 在下面提到的命令中,allocate 命令分配了 4 GB 的空间作为 SWAP 空间。 当命令完成文件创建后,请运行下一个更改模式命令,以允许 SWAP 文件读写权限。
sudo fallocate -l 4G /swapfile chmod 600 /swapfile
如果您在使用 allocate 命令时遇到任何问题,请尝试以下命令来腾出 SWAP 空间。
sudo dd if=/dev/zero of=/swapfile bs=4096 count=1048576
现在,通过在具有 root 访问权限的终端 shell 上运行以下命令,使 SWAP 文件可执行并在您的 Ubuntu 系统上启用它。
sudo mkswap /swapfile sudo swapon /swapfile
第 3 步:配置脚本并分配交换
在您的 Ubuntu 系统上创建 SWAP 空间后,您可以编辑配置以设置 SWAP 参数。 为了 example,使用以下命令以 root 访问权限,编辑 SWAP 分区,并查看 UUID。
sudo nano /etc/fstab
现在,当配置脚本打开时,在脚本中添加以下行,保存并退出文件。 该行表示挂载点、文件类型。
/swapfile none swap sw 0 0
现在,运行以下命令来编辑内核级脚本,以在您的机器上启用 SWAP 空间。
sudo nano /etc/sysctl.conf
当脚本打开时,在脚本中添加以下行,然后保存并退出它。 您可以根据紧急情况更改该值。
vm.swappiness=10
现在运行以下系统控制命令重新加载 SWAP 空间并查看对您机器的影响。
sudo sysctl -p
您现在可以运行下面给出的 swapon 命令来检查 SWAP 空间是否在您的 Ubuntu 系统上被激活。
sudo swapon --show
第 4 步:在 Ubuntu 中调整 SWAP 的大小
如果您需要在 SWAP 磁盘中添加更多空间,您可以通过在其中添加更多磁盘空间来实现。 要在 Ubuntu 机器上调整 SWAP 空间的大小,您需要关闭 SWAP 空间,然后重新分配所需的空间。 您可以在具有 root 访问权限的 shell 上运行以下命令行来实现这一点。
sudo swapoff /swapfile sudo fallocate -l 2G /swapfile
调整大小完成后,将空间标记为 SWAP 并在系统上启用该文件。 运行以下命令来标记和启用 SWAP 空间。
sudo mkswap /swapfile sudo swapon /swapfile
第 5 步:在 Ubuntu Linux 上删除 SWAP
有时,当您有一台多引导计算机时,您可能需要在系统上为每个操作系统分配 SWAP 空间。 以下过程将允许您清空 Ubuntu 机器上的 SWAP 空间。 首先,运行以下 nano 命令来编辑 swap2ram 脚本以对其进行编辑。 当它打开时,添加下面给出的脚本,然后保存并退出文件。
sudo nano /usr/local/sbin/swap2ram.sh
然后,将以下行添加到脚本中,然后保存并退出文件以停用 SWAP 文件。
#!/bin/sh mem=$(LC_ALL=C free | awk '/Mem:/ {print $4}') swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}') if [ $mem -lt $swap ]; then echo "ERROR: not enough RAM to write swap back, nothing done" >&2 exit 1 fi swapoff -a && swapon -a
如果您在编辑脚本和运行命令时遇到任何问题,请运行更改模式命令来执行文件。
sudo chmod +x /usr/local/sbin/swap2ram.sh sudo /usr/local/sbin/swap2ram.sh
您还可以通过在终端 shell 上运行以下 rm 命令来关闭 SWAP 并将其删除。
sudo swapoff -v /swapfile sudo rm /swapfile
您可能面临的问题
如果您使用的是旧硬件或操作系统,您可能会遇到一些问题。 为了 example,您可能需要更改 swappiness 值以让您的 Ubuntu 内核知道您希望机器在创建 SWAP 空间后多久使用一次 SWAP 空间。
如果您无法更改 Ubuntu 系统上的 swappiness 值,请尝试使用以下命令行在脚本中添加您的自定义行。 这里,60是内存分页(swappiness)值,你可以根据你的配置来改变它。
cd /etc/sysctl.d/ sudo touch 60-my-swappiness.conf
然后在记事本/编辑器上运行 SWAP 配置脚本来更改 vm.swappiness = 60
价值。
sudo nano 60-my-swappiness.conf
最后的话
毫无疑问,SWAP 可以加速您的系统,而在 Linux 中进行交换确实可以避免您的计算机因 RAM 空间不足而崩溃。 但在您的系统上创建 SWAP 空间之前,请确保您确实需要 SWAP 空间。
并且建议在安装操作系统时通过安装向导添加交换空间。 在整篇文章中,我已经描述了 SWAP 的概念、您可能需要多少次交换以及在 Ubuntu 系统上添加 SWAP 空间的过程。
如果您觉得这篇文章有用且技术性强,请与您的朋友和 Linux 社区分享。 您也可以在评论部分写下您对这篇文章的看法。