learning_record_doc/linux/ubuntu/手把手教你在 Ubuntu 20.04 系统上添加 swap 交换空间.md
2023-04-24 17:43:39 +08:00

6.7 KiB
Raw Permalink Blame History

本文由 简悦 SimpRead 转码, 原文地址 www.ypojie.com

交换空间是硬盘上的一个空间,当物理 RAM 内存被用尽时,被紧急征用的空间。

交换空间是硬盘上的一个空间,当物理 RAM 内存被用尽时,被紧急征用的空间。当一个 Linux 系统 RAM 内存耗尽,不活跃的内存页将会被移动到交换空间。

交换空间可以是一个独立的交换分区,也可以是一个交换文件。有代表性地,当在一个虚拟机上运行一个 Ubuntu 时,没有一个交换分区,并且唯一的选项就是创建一个交换文件。

本教程讲解如何在 Ubuntu 20.04 上添加一个 swap 交换文件。

交换分区不应该被当作物理内存的替代品。因为 swap 交换分区是硬盘驱动器的一部分,它比物理内存更慢的访问时间。如果你的系统经常内存耗尽,你应该添加更多内存。

通常,交换文件大小依赖于你的系统有多少 RAM 内存:

少于 2 GB RAM 内存的系统 2 倍 RAM 内存的大小
2 到 8 GB RAM 内存的系统 同样 RAM 内存大小
大于 8 GB RAM 内存的系统 至少 4 GB 交换文件

仅仅只有 root 或者其他有 sudo 权限的用户能够激活 swap 文件。

一、开始准备工作

第 1 步:检查交换信息

在开始之前,首先确保通过运行以下命令来检查系统是否已具有可用的交换空间。

$ sudo swapon --show

如果您没有看到任何输出,则表示您的系统当前没有可用的交换空间。

您还可以使用 free 命令确认没有可用的交换空间。

$ free -h

第 2 步:检查分区上的可用空间

要创建交换空间,首先需要检查当前的磁盘使用情况,并确认有足够的空间在系统上创建交换文件。

$ df -h

二、创建一个交换文件

在这个例子中,我们创建 2 GB 交换文件。如果你想添加更多交换文件,将 2G 替换成你需要设置的交换空间的大小。

完成下面的步骤,在 Ubuntu 20.04 上添加交换空间:

  1. 首先,创建一个用作交换文件的文件:
sudo fallocate -l 2G /swapfile

如果fallocate工具在你的系统上不可用,或者你获得一个消息:fallocate failed: Operation not supported,使用下面的命令去创建交换文件:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152
  1. 设置文件权限到 600 阻止常规用户读写这个文件:
sudo chmod 600 /swapfile
  1. 在这个文件上创建一个 Linux 交换区:
sudo mkswap /swapfile

输出如下:

Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=fde7d2c8-06ea-400a-9027-fd731d8ab4c8
  1. 通过运行下面的命令,激活交换区:
sudo swapon /swapfile

想要持久化,打开 / etc/fstab 文件:

sudo nano /etc/fstab

并且粘贴下面的行:

/swapfile swap swap defaults 0 0
  1. 使用 swapon 或者 free 命令来验证交换区是否已激活,像下面这样:
sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -1
sudo free -h
total used free shared buff/cache available 

Mem: 981Mi 97Mi 68Mi 0.0Ki 814Mi 735Mi 

Swap: 2.0Gi 10Mi 1.9Gi

三、调整 Swappiness 值
Swappiness 是一个 Linux 内核属性,用来定义系统将会有多频繁使用交换分区。它取值范围从 0 到 100。一个较低的取值可以在可能的情况下尽量避免交换而一个较高的值会使得内核更频繁地使用交换分区。

在 Ubuntu 上,默认的 Swappiness 取值被设置成 60。你可以通过输入下面的命令检查这个当前值:

cat /proc/sys/vm/swappiness

输出如下:

60

Swappiness 为 60 适合大部分 Linux 操作系统,对于生产服务器,你需要将这个值设置成更低。

例如,将 Swappiness 值修改成 10,运行:

sudo sysctl vm.swappiness=10

想要将这个参数持久化,在重启时仍然起作用,将下面的内容附加到/etc/sysctl.conf文件:

vm.swappiness=10

最理想的 swappiness 取决于你的系统,以及内存是怎么被使用的。你需要小步调整这个取值来查找一个最适合的值。

四、移除一个交换文件

想要取消激活,并且删除交换文件,按照下面的步骤:

  1. 首先,取消激活交换空间:
sudo swapoff -v /swapfile
  1. 下一步,从/etc/fstab文件中移除交换文件条目 /swapfile swap swap defaults 0 0。

  2. 最后,使用rm命令删除实际的交换区文件:

sudo rm /swapfile

五、教程结束

以上就是如何在 Ubuntu 20.04 系统上如何创建一个交换文件,并且激活,并且配置交换空间。

这些信息可能会帮助到你: 下载帮助 | 报毒说明 | 进站必看 | 广告投放

版权声明:本文采用知识共享 署名 4.0 国际许可协议 [BY-NC-SA] 进行授权
文章名称:《手把手教你在 Ubuntu 20.04 系统上添加 swap 交换空间》
文章链接:https://www.ypojie.com/11463.html
免责声明:根据《计算机软件保护条例》第十七条规定 “为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。” 您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在 24 个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。