首页 > 运维 > linux运维 > 正文

在Ubuntu 20.04上添加swap交换空间

雪夜
发布: 2025-07-15 10:22:02
原创
277人浏览过

在ubuntu 20.04上添加swap交换空间许多人认为swap交换空间仅在物理ram内存已满时才会被使用。这种观点是错误的,因为linux内核会在内存中非活动页面移动到交换空间swap时使用它。

如需了解更多相关信息,请查阅我们的教程:Linux性能:为何你需要添加交换空间swap。

交换空间swap可以以专用交换分区或交换文件的形式创建。通常,在虚拟机上运行Ubuntu时,由于没有交换分区,唯一的选择是创建交换文件。

交换空间swap不应被视为物理内存的替代品。由于交换空间位于硬盘驱动器上,因此其访问速度比物理内存慢得多。

如果您的系统频繁出现内存不足的情况,应考虑增加物理内存RAM。交换空间的目的是提升系统性能,而非增加系统的总内存。

关于交换空间如何提升Linux系统性能的详细信息,请参阅我们的教程:Linux性能:为何你需要添加交换空间swap。

在本教程中,我们将创建一个大小为2 GB的交换空间文件。如果您需要更大的交换空间,请将2G替换为您所需的大小。

在Ubuntu 20.04中,有两种创建指定大小文件的方法,分别是使用fallocate和dd命令。您可以选择您喜欢的方式来创建交换空间文件。

fallocate和dd命令都能快速创建指定大小的文件,其中fallocate更为简洁易懂。具体选择取决于您的偏好。

如果您的系统中没有fallocate命令,或者您收到fallocate failed: Operation not supported的错误消息,您可以使用dd命令创建swap交换空间文件。以下是使用fallocatedd命令在Ubuntu 20.04 Linux的根目录中创建大小为2G的交换空间文件swapfile的命令:

sudo fallocate -l 2G /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152
登录后复制

默认情况下,交换空间文件的权限仅允许root用户读取和写入。因此,我们需要将交换空间文件的权限设置为600

在Linux中,可以使用chmod命令修改文件权限。此外,还需要格式化交换空间文件。交换空间文件使用与普通文件系统不同的文件系统格式,并有专门的格式化工具mkswap。以下命令将交换空间文件的权限设置为600,并使用mkswap进行格式化:

sudo chmod 600 /swapfile
sudo mkswap /swapfile
登录后复制

格式化完成后,您需要手动启用交换空间文件以使系统识别它。在Ubuntu 20.04 Linux中,可以使用swapon命令启用交换空间文件,它将自动挂载到系统中。运行以下swapon命令以启用交换空间:

sudo swapon /swapfile
登录后复制

swapon命令仅在当前会话中启用交换空间,重启后不会自动挂载。为了使交换空间在系统启动时自动挂载,您需要在/etc/fstab文件中定义挂载配置选项。

/etc/fstab文件存储着文件系统的静态挂载信息,用于定义磁盘分区、各种其他块设备或远程文件系统,告知Linux内核如何挂载这些设备文件。

以下命令使用echo、tee命令以及管道将行/swapfile swap swap defaults 0 0追加到/etc/fstab文件中:

Swapface人脸交换
Swapface人脸交换

一款创建逼真人脸交换的AI换脸工具

Swapface人脸交换 45
查看详情 Swapface人脸交换
echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab
登录后复制

在计算机重启时,交换空间将自动启用。您可以通过使用swaponfree命令来验证交换空间是否处于活动状态。

sudo swapon --show
sudo free -h
登录后复制

Swappiness是Linux内核的一个属性,用于定义系统使用交换空间的频率。Swappiness的值在0到100之间。

当swappiness=0时,表示尽可能使用物理内存,然后才使用swap空间;当swappiness=100时,表示积极使用交换空间。

如果您不确定该值的大小,请参考我们的教程:Linux性能:为何你需要添加交换空间swap和空闲内存与可用内存的区别

Linux的初始默认swappiness值为60,您可以使用cat /proc/sys/vm/swappiness命令查看当前的swappiness值。

如果需要更改swappiness的值,请运行sudo sysctl -w vm.swappiness=10命令。

sysctl命令用于在运行时配置Linux内核参数,更改仅在当前会话中有效,重启后会恢复为默认值。

为了使swappiness值持久化,您需要将值写入到/etc/sysctl.conf文件中。sysctl.conf是Linux内核的配置文件,在内核启动时会读取此文件中的参数。

运行以下命令以持久化Linux内核参数swappiness的值:

echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
登录后复制

如果您因某些原因需要关闭并删除交换文件,您必须首先使用swapoff命令关闭交换空间。

如果您的交换空间文件配置了通过fstab自动挂载,您还需要从/etc/fstab文件中删除相应的自动挂载配置。

sudo swapoff -v /swapfile
登录后复制

接下来,使用您喜欢的编辑器打开/etc/fstab文件,并移除定义交换空间自动挂载的行。在本教程中,我们将使用vim命令打开文件。

sudo vim /etc/fstab
登录后复制

保存并退出后,最后一步是使用命令删除交换空间文件。您将使用rm命令删除文件:sudo rm /swapfile

总结:我们向您展示了如何在Ubuntu 20.04系统上创建、激活和配置交换文件。如果您遇到问题或有反馈,请在下方评论。

以上就是在Ubuntu 20.04上添加swap交换空间的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号