From 357cd13c410932a095696c80fe0d32613fa4038b Mon Sep 17 00:00:00 2001 From: Shuaishuai Dai <2111319672@qq.com> Date: Wed, 4 Jan 2023 18:16:17 +0800 Subject: [PATCH] add ubuntu swap doc --- ...你在 Ubuntu 20.04 系统上添加 swap 交换空间.md | 186 ++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 ubuntu/手把手教你在 Ubuntu 20.04 系统上添加 swap 交换空间.md diff --git a/ubuntu/手把手教你在 Ubuntu 20.04 系统上添加 swap 交换空间.md b/ubuntu/手把手教你在 Ubuntu 20.04 系统上添加 swap 交换空间.md new file mode 100644 index 0000000..52be229 --- /dev/null +++ b/ubuntu/手把手教你在 Ubuntu 20.04 系统上添加 swap 交换空间.md @@ -0,0 +1,186 @@ +> 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码, 原文地址 [www.ypojie.com](https://www.ypojie.com/11463.html) + +> 交换空间是硬盘上的一个空间,当物理 RAM 内存被用尽时,被紧急征用的空间。 + +[交换空间](https://www.ypojie.com/tag/%e4%ba%a4%e6%8d%a2%e7%a9%ba%e9%97%b4 "交换空间")是硬盘上的一个空间,当物理 RAM 内存被用尽时,被紧急征用的空间。当一个 Linux 系统 RAM 内存耗尽,不活跃的内存页将会被移动到交换空间。 + +交换空间可以是一个独立的交换分区,也可以是一个交换文件。有代表性地,当在一个虚拟机上运行一个 [Ubuntu](https://www.ypojie.com/tag/ubuntu "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 步:检查交换信息 + +在开始之前,首先确保通过运行以下命令来检查系统是否已具有可用的交换空间。 + +```shell +$ sudo swapon --show +``` + +如果您没有看到任何输出,则表示您的系统当前没有可用的交换空间。 + +您还可以使用 free 命令确认没有可用的交换空间。 + +```shell +$ free -h +``` + +第 2 步:检查分区上的可用空间 + +要创建交换空间,首先需要检查当前的磁盘使用情况,并确认有足够的空间在系统上创建交换文件。 + +```shell +$ df -h +``` + +二、创建一个交换文件 +---------- + +在这个例子中,我们创建 2 GB 交换文件。如果你想添加更多交换文件,将 2G 替换成你需要设置的交换空间的大小。 + +完成下面的步骤,在 Ubuntu 20.04 上添加交换空间: + +01. 首先,创建一个用作交换文件的文件: + +```sh +sudo fallocate -l 2G /swapfile +``` + +如果`fallocate`工具在你的系统上不可用,或者你获得一个消息:`fallocate failed: Operation not supported`,使用下面的命令去创建交换文件: + +```shell +sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152 +``` + +02. 设置文件权限到 600 阻止常规用户读写这个文件: + +```shell +sudo chmod 600 /swapfile +``` + +03. 在这个文件上创建一个 Linux 交换区: + +```shell +sudo mkswap /swapfile +``` + +输出如下: + +```shell +Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) +no label, UUID=fde7d2c8-06ea-400a-9027-fd731d8ab4c8 +``` + +04. 通过运行下面的命令,激活交换区: + +```shell +sudo swapon /swapfile +``` + +想要持久化,打开 / etc/fstab 文件: + +```shell +sudo nano /etc/fstab +``` + +并且粘贴下面的行: + +```shell +/swapfile swap swap defaults 0 0 +``` + +05. 使用 swapon 或者 free 命令来验证交换区是否已激活,像下面这样: + +```shell +sudo swapon --show +``` + +```shell +NAME TYPE SIZE USED PRIO +/swapfile file 2G 0B -1 +``` + +```shell +sudo free -h +``` + +```shell +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`。你可以通过输入下面的命令检查这个当前值: + +```shell +cat /proc/sys/vm/swappiness +``` + +输出如下: + +```shell +60 +``` + +Swappiness 为 60 适合大部分 Linux 操作系统,对于生产服务器,你需要将这个值设置成更低。 + +例如,将 Swappiness 值修改成 `10`,运行: + +```shell +sudo sysctl vm.swappiness=10 +``` + +想要将这个参数持久化,在重启时仍然起作用,将下面的内容附加到`/etc/sysctl.conf`文件: + +```shell +vm.swappiness=10 +``` + +最理想的 swappiness 取决于你的系统,以及内存是怎么被使用的。你需要小步调整这个取值来查找一个最适合的值。 + +四、移除一个交换文件 + +想要取消激活,并且删除交换文件,按照下面的步骤: + +01. 首先,取消激活交换空间: + +```shell +sudo swapoff -v /swapfile +``` + +02. 下一步,从`/etc/fstab`文件中移除交换文件条目 /swapfile swap swap defaults 0 0。 + +03. 最后,使用`rm`命令删除实际的交换区文件: + +```shell +sudo rm /swapfile +``` + +五、教程结束 + +以上就是如何在 Ubuntu 20.04 系统上如何创建一个交换文件,并且激活,并且配置交换空间。 + +这些信息可能会帮助到你: [下载帮助](https://www.ypojie.com/6916.html) | [报毒说明](https://www.ypojie.com/5672.html) | [进站必看](https://www.ypojie.com/about) | [广告投放](https://www.ypojie.com/cooperation) + +版权声明:本文采用知识共享 署名 4.0 国际许可协议 [BY-NC-SA] 进行授权 +文章名称:《手把手教你在 Ubuntu 20.04 系统上添加 swap 交换空间》 +文章链接:[https://www.ypojie.com/11463.html](https://www.ypojie.com/11463.html) +免责声明:根据《计算机软件保护条例》第十七条规定 “为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。” 您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在 24 个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。 +本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。 \ No newline at end of file