前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在 Ubuntu 20.04 上添加交换空间

如何在 Ubuntu 20.04 上添加交换空间

作者头像
雪梦科技
修改2020-05-24 10:24:58
4.8K0
修改2020-05-24 10:24:58
举报
文章被收录于专栏:ITCoderITCoder

本文最先发布在:https://cloud.tencent.com/developer/article/1631696

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

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

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

一、在开始之前

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

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

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

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

二、创建一个交换文件

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

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

01.首先,创建一个用作交换文件的文件:

代码语言:javascript
复制
sudo fallocate -l 2G /swapfile

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

代码语言:javascript
复制
sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152

02.设置文件权限到600阻止常规用户读写这个文件:

代码语言:javascript
复制
sudo chmod 600 /swapfile

03.在这个文件上创建一个 Linux 交换区:

代码语言:javascript
复制
sudo mkswap /swapfile

输出如下:

代码语言:javascript
复制
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=fde7d2c8-06ea-400a-9027-fd731d8ab4c8

04.通过运行下面的命令,激活交换区:

代码语言:javascript
复制
sudo swapon /swapfile

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

代码语言:javascript
复制
sudo nano /etc/fstab

并且粘贴下面的行:

代码语言:javascript
复制
/swapfile swap swap defaults 0 0

05.使用swapon或者free命令来验证交换区是否已激活,像下面这样:

代码语言:javascript
复制
sudo swapon --show
代码语言:javascript
复制
NAME      TYPE      SIZE  USED PRIO
/swapfile file        2G    0B   -1
代码语言:javascript
复制
sudo free -h
代码语言:javascript
复制
              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。你可以通过输入下面的命令检查这个当前值:

代码语言:javascript
复制
cat /proc/sys/vm/swappiness

输出如下:

代码语言:javascript
复制
60

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

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

代码语言:javascript
复制
sudo sysctl vm.swappiness=10

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

代码语言:javascript
复制
vm.swappiness=10

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

四、移除一个交换文件

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

01.首先,取消激活交换空间:

代码语言:javascript
复制
sudo swapoff -v /swapfile

02.下一步,从/etc/fstab文件中移除交换文件条目/swapfile swap swap defaults 0 0

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

代码语言:javascript
复制
sudo rm /swapfile

五、总结

我们已经向你展示了在你的 Ubuntu 20.04 系统上如何创建一个交换文件,并且激活,并且配置交换空间。

如果你有任何疑问,请通过以下方式联系我们:

微信: sn0wdr1am86

微信群: 加上面的微信,备注微信群

QQ: 3217680847

QQ 群: 82695646

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年05月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、在开始之前
  • 二、创建一个交换文件
  • 三、调整 Swappiness 值
  • 四、移除一个交换文件
  • 五、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档