当前位置: 首页 > article >正文

如何在 Ubuntu 22.04 上添加 Swap 内存

简介

在本教程中,我们将学习如何在 Ubuntu 22.04 上添加 Swap 内存。

Swap 内存是存储驱动器上的一个空间,当系统的物理 RAM 完全被使用时,会用到这个空间。它充当一个溢出空间来保存不活动的内存页,允许系统在高内存需求下平稳运行。本教程将指导你如何在 Ubuntu 22.04 服务器上添加交换内存,涵盖基本和高级配置。

本教程的目标是手把手教你如何在 Ubuntu 22.04 服务器上添加 Swap 内存。

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。

  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。

  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

  • 到此为止,我们的云服务器就远程连接上了。

安装和配置步骤

理解 Swap 内存

Swap 内存可以配置为:

1. Swap 分区: 存储设备上的一个专用分区。

2. Swap 文件: 文件系统上的一个文件,充当交换空间。

在现代系统中,swap 文件更加灵活且易于管理,使其成为首选。本教程侧重于创建和配置 swap 文件。

检查现有的 Swap 空间

在添加 Swap 内存之前,检查你的系统是否已经配置了 Swap:

sudo swapon --sho

如果未显示任何输出,则表示未配置 Swap。你还可以验证系统的总内存和 Swap 使用情况:

free -

第一步:创建 Swap 文件

  1. 确定 Swap 的大小:

根据服务器的工作负载确定 Swap 文件的大小。一个常见的规则是:

  • 对于 RAM 小于 2 GB 的系统,使用与 RAM 大小相等的 Swap 大小。
  • 对于 RAM 为 2-8 GB 的系统,使用 RAM 大小的一半。
  • 对于 RAM 大于 8 GB 的系统,使用 4 GB 或更少。
  1. 创建 Swap 文件:

使用 fallocate 命令创建 Swap 文件。将 2G 替换为你想要的 Swap 大小:

sudo fallocate -l 2G /swapfile

验证文件创建:

ls -lh /swapfile

如果 fallocate 不可用或遇到问题,请使用 dd

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

第二步:保护 Swap 文件

设置正确的权限以防止未经授权的访问:

sudo chmod 600 /swapfile
ls -lh /swapfil

现在,该文件应该只能由 root 用户读取和写入。

第三步:设置 Swap 文件

将文件标记为 Swap:

sudo mkswap /swapfil

你应看到确认 Swap 文件设置的输出。

启用 Swap 文件:

sudo swapon /swapfil

验证 Swap 是否已激活:

sudo swapon --show
free -

第四步:使 Swap 永久生效

为了确保在启动时启用 Swap 文件,请将其添加到 /etc/fstab 文件中:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fsta

第五步:配置 Swap 设置(可选)

  1. 调整 Swappiness:

swappiness 参数控制内核使用 Swap 的积极程度。值的范围是 0 到 100:

  • 较低的值会减少 Swap 的使用(推荐用于具有足够 RAM 的系统)。
  • 较高的值会增加 Swap 的使用。

检查当前值:

cat /proc/sys/vm/swappiness

临时设置一个新值(例如,10):

sudo sysctl vm.swappiness=10

通过将设置添加到 /etc/sysctl.conf 使其永久生效:

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
  1. 调整缓存压力:

vfs_cache_pressure 参数控制系统如何优先处理 inode/dentry 缓存。较低的值可以提高文件密集型应用程序的性能:

sudo sysctl vm.vfs_cache_pressure=50
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf

第六步:验证配置

重启服务器以确保 Swap 配置正确并在重启后仍然存在:

sudo reboo

重启后,验证 Swap 状态:

sudo swapon --show
free -

高级注意事项

  1. 监控 Swap 使用情况:

使用 htoptop 实时监控 Swap 使用情况:

sudo apt install htop
htop
  1. Zswap 用于压缩 Swap:

为了获得更好的性能,启用 zswap —— 用于 Swap 页面的压缩缓存:

 sudo vim /etc/default/grub

将以下参数添加到 GRUB_CMDLINE_LINUX

zswap.enabled=1

更新 GRUB:

sudo update-grub
sudo reboot
  1. 删除 Swap 文件:

如果你需要删除 Swap 文件,请首先禁用它:

sudo swapoff /swapfile

/etc/fstab 中删除该条目并删除该文件:

sudo rm /swapfile

结尾

在本教程中,我们学习了如何在 Ubuntu 22.04 上添加 Swap 内存。添加 Swap 内存可以增强系统在繁重工作负载下的稳定性和性能。通过遵循本指南中的步骤,你可以在 Ubuntu 22.04 服务器上有效地配置 Swap,确保最佳的资源管理和对不同工作负载的适应性。

  • 雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
  • 我的博客:https://blog.ivwv.site

http://www.kler.cn/a/459180.html

相关文章:

  • QT-窗口嵌入外部exe
  • 高等数学学习笔记 ☞ 无穷小比较与等价无穷小替换
  • 单元测试4.0+思路总结
  • SpringCloudAlibaba实战入门之路由网关Gateway过滤器(十三)
  • Kafka3.x KRaft 模式 (没有zookeeper) 常用命令
  • TT100K数据集, YOLO格式, COCO格式
  • nginx中try_files $uri $uri index.html的作用 和 $uri的含义
  • 【每日学点鸿蒙知识】PersistentStorage持久化、插槽方法、相对布局、上拉加载下拉刷新、List联动滑动
  • 【GO基础学习】Gin 框架中间件的详解
  • Error: The Calculated NPWS= 84330 != The Read NPWS= 84328
  • 优化租赁小程序提升服务效率与用户体验的策略与实践
  • 代码随想录算法训练营第六天 | 242. 有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
  • 如何利用无线路由器实现水泵房远程监测管理
  • 关于科研工具的思考
  • 企业能源物联网数据采集设备
  • WOFOST作物模型(3):敏感性分析
  • 学习鸿蒙第一天
  • shell指令操作
  • 机器学习之逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告
  • 【VBA】EXCEL - VBA 创建 Sheet 表的 6 种方法,以及注意事项
  • pycharm如何运行js代码详细图文教程
  • Qt/C++案例 记录创建并加载动态链接库修改exe/dll类型文件的版本信息的示例
  • 云手机:Instagram 矩阵搭建方案
  • MySQL什么情况下会加间隙锁?
  • 使用 AI Cursor 编程实现一个小产品 Chrome 扩展插件 MVP 功能
  • 阿里云 ECS 服务器绑定多个公网IP