专栏首页ITCoder如何在 CentOS 8 上增加 Swap 空间

如何在 CentOS 8 上增加 Swap 空间

Swap(交换内存)是硬盘上的一个空间,当物理内存耗尽,交换内存就会被使用。当一个 Linux 系统内存不足时,不活跃的内存页,将会被从 RAM 空间 移动到 Swap 内存交换空间。

Swap 空间可能以独立的内存交换分区或者一个 swap 文件形式存在。通常,在虚拟机上运行 CentOS,没有现成的内存交换分区,因此唯一的选择就是创建一个 swap 文件。

本文将会讲述给 CentOS 8 系统增加一个 swap 文件的几个步骤。

一、创建并且激活 Swap 文件

以 root 或者其他有 sudo 权限的用户身份执行下面的步骤,在 CentOS 8 系统上新增 swap 空间。

01.开始创建用于内存交换空间的文件:

sudo fallocate -l 1G /swapfile

在这个例子中,我们创建了一个 1G 大小的 swap 文件。如果你需要更多的内存交换空间,将1G换成你想要的大小。

如果你的系统上fallocate不可用,或者你得到错误提示:fallocate failed: Operation not supported,使用dd命令来创建 swap 文件。

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

02.设置文件权限以便只有 root 用户可以读写 swap 文件:

sudo chmod 600 /swapfile

03.下一步,在这个文件上设置 Linux swap:

sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=0abdb8ba-57d6-4435-8fd8-5db9fc705045

04.执行下面的命令激活 swap 空间:

sudo swapon /swapfile

05.通过使用swapon或者free命令来验证 swap 空间是否已经激活,像下面这样:

sudo swapon --show
NAME      TYPE  SIZE   USED PRIO
/swapfile file 1024M 507.4M   -1
sudo free -h
              total        used        free      shared  buff/cache   available
Mem:           488M        158M         83M        2.3M        246M        217M
Swap:          1.0G        506M        517M

06.通过在/etc/fstab文件中添加一条 swap 条目来持久化这些修改。

sudo nano /etc/fstab

将下面的内容粘贴进文件后面:

/swapfile swap swap defaults 0 0

二、调整 Swappiness 值

Swappiness 是一个 Linux Kernel 属性值,它定义了系统使用 swap 空间的频率。Swappiness 取值范围从 0 到 100。一个较低的值使得 kernel 尽可能避免使用交换内存,而较高的值将使得 kernel 尽可能的使用交换内存空间。

在 CentOS 8 上 swappiness 默认值是 30。你可以通过输入下面的命令检测当前的 swappiness 值:

cat /proc/sys/vm/swappiness
30

当 swappiness 值为 30 的时候,它是适合桌面版本和开发版本的机器的,而对于生产服务器,你可能需要调低这个值。 例如,将 swappiness 值调低为 10,输入:

sudo sysctl vm.swappiness=10

想要持久化这个参数,应该将下面的内容粘贴到/etc/sysctl.conf文件,并且重新启动:

vm.swappiness=10

最优的 swappiness 值依赖于你的系统工作量和你的内存是如何被使用的。你应该一点一点增加这个参数值,来寻找最优值。

三、移除一个 Swap 文件

想要取消激活并且移除 swap 文件,参考这些步骤:

01.通过输入下面命令,取消激活 swap 空间:

sudo swapoff -v /swapfile

02.从/etc/fstab文件中移除 swap 条目/swapfile swap swap defaults 0 0

03.使用rm删除实际的 swap 文件:

sudo rm /swapfile

四、总结

我们已经给你演示了在 CentOS 8 上如何创建一个 swap 文件,并且激活和配置 swap 空间。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 在 Ubuntu 中如何将用户添加到 Sudoers

    sudo是一个命令行程序,它允许被信任的用户以 root 或者其他用户身份去运行命令。

    雪梦科技
  • 在 CentOS 上如何将用户添加到 Sudoers

    sudo是一个命令行工具,它被设计为允许用户以其他用户(默认是 root 用户)身份去运行命令。

    雪梦科技
  • 在 Debian 中如何将用户添加到 Sudoers

    sudo是一个命令行工具,它允许被信任用户以另外一个用户身份运行命令,默认是 root 用户。

    雪梦科技
  • CentOS7上配置Swap交换空间

    swap通常在传统机械硬盘上表现更好,在SSD上使用swap可能会造成问题,尤其是硬件老化之后。所以,对于DigitalOcean以及其他使用基于SSD的云主机...

    JouyPub
  • error LNK2019: 无法解析的外部符号

    最近在写与驱动程序通信的Windows应用程序,在VS2013编译时出现了“error LNK2019:无法解析的外部符号”的错误。

    用户7043923
  • Net处理html页面元素工具类(HtmlAgilityPack.dll)的使用

    简介 本文介绍net处理html页面元素的工具类(HtmlAgilityPack.dll)的使用,用途比较多的应该是例如采集类的功能,采集到的html字符串要怎...

    Java中文社群_老王
  • 亚马逊再开3000+无人店!国内却一半是海水一半是火焰

    2016年Amazon对外宣布即将上线Amazon Go无人实体超市时,很多人认为此举是亚马逊为了在美国黑色星期五促销时抓住消费者眼球。

    罗超频道
  • 当 Kali 遇见 Docker

    最近在学习 《Python 黑帽子:黑客与渗透测试编程之道》一书,分别在 VMvare 和 U 盘安装了 Kali-Linux 操作系统,但是 VMvare 启...

    蓝默空间
  • 怎样用NextCloud管理块存储卷

    Nextcloud是一个云存储平台,你可以在任意设备上访问该平台、存储和查看你的文件。本文将介绍如何在一台Linode服务器上挂载Block Storage(块...

    Techeek
  • Linux 命令(114)—— nl 命令

    nl(number line)命令用于计算文件的行号并将带有行号的内容输出到标准输出。相比于命令 cat -n,nl 可以对行号做比较多的显示设计,包括位数与是...

    Dabelv

扫码关注云+社区

领取腾讯云代金券