如何在 Ubuntu 22.04 上添加 Swap 内存

简介

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

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

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

准备工作

  • 准备一台云服务器

若尚未拥有服务器,可前往 雨云官网 https://rainyun.ivwv.site 进行注册,新用户有专属优惠。

安装和配置步骤

理解 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,确保最佳的资源管理和对不同工作负载的适应性。

<think>好的,我现在需要帮助用户在现有的Ubuntu 22.04系统上安装Ubuntu 18.04,实现双系统。用户还提到了分区和Grub配置的问题。首先,我得回忆一下双系统安装的基本步骤,以及需要注意的地方。 首先,用户已经有一个Ubuntu 22.04,现在要加装18.04。通常双系统安装需要为新系统腾出磁盘空间。用户可能需要调整现有分区,比如缩小某个分区,或者使用未分配的磁盘空间。这里需要注意备份数据,因为调整分区大小有风险,可能会导致数据丢失。另外,如果用户的磁盘是使用UEFI还是传统的BIOS模式,这会影响引导配置,但Ubuntu一般默认使用UEFI,所以可能需要检查EFI系统分区(ESP)的情况。 接下来是分区步骤。安装Ubuntu 18.04时,用户需要手动分区。通常需要为18.04创建根目录分区(/),可能还需要交换分区或者/home分区,但交换分区在较新版本中可能被swap文件替代。不过,Ubuntu 18.04可能默认还是会创建swap分区。需要注意不要覆盖现有的22.04分区,尤其是/home或者数据分区。用户可能需要使用GParted来调整分区,或者在安装时选择“其他选项”进行手动分区。 然后是安装过程中的引导问题。安装第二个Ubuntu时,安装程序通常会将Grub安装到整个磁盘(比如/dev/nvme0n1),这样会覆盖原有的Grub。但用户希望保留现有的22.04的Grub,并且能正确识别两个系统。不过根据引用[1]中的内容,Grub安装器的配置参数可以指定安装位置,比如d-i grub-installer/bootdev string /dev/nvme0n1,这样确保Grub被正确安装到主引导记录中。但安装18.04时,可能需要确保Grub不会覆盖现有的配置,或者安装后需要更新Grub以识别两个系统。 安装完成后,可能需要进入22.04系统,运行sudo update-grub来重新生成Grub菜单,这样就能看到18.04的启动选项了。如果安装过程中Grub被18.04的版本覆盖,可能需要修复引导,但通常较新版本的Grub可以识别旧系统。 关于分区方案的具体建议,用户需要为Ubuntu 18.04分配至少根分区和交换分区。例如,根分区(/)建议20GB或更多,交换分区根据内存大小来定,或者使用swap文件。如果用户已经有单独的/home分区,可能可以选择不格式化/home,但需要注意两个系统使用不同的用户名避免冲突。 另外,文件系统类型方面,Ubuntu 18.04可能默认使用ext4,所以建议用户继续使用ext4以保持兼容性。对于EFI系统分区,现有的ESP应该足够,不需要为18.04再创建一个,否则可能导致问题。安装时确保不要格式化现有的ESP分区,否则会破坏22.04的引导。 最后,Grub配置可能需要手动调整,特别是如果安装后无法进入任何一个系统。用户可能需要使用Live USB进入系统,重新安装Grub并更新配置。不过按照引用[1]中的参数,正确指定安装位置应该可以避免问题。同时,安装clusterssh可能对管理多个系统有用,如引用[2]提到的cssh工具,但这不是安装双系统的必要步骤。 总结步骤:备份数据,腾出磁盘空间,安装时手动分区,正确配置Grub安装位置,安装后更新Grub。需要提醒用户谨慎操作分区,避免数据丢失,并检查引导配置是否正确。</think>### 双系统安装指南:Ubuntu 22.04Ubuntu 18.04 #### 一、准备工作 1. **备份重要数据** 调整分区可能导致数据丢失,建议使用外部存储或云备份关键文件。 2. **创建Ubuntu 18.04安装介质** 使用Rufus或BalenaEtcher制作启动U盘,选择Ubuntu 18.04 ISO文件。 3. **腾出磁盘空间** - 在Ubuntu 22.04中打开`GParted`,缩小现有分区或删除未使用分区,预留至少20GB空间。 - 若使用全盘加密(LUKS),需提前解密并调整逻辑卷。 --- #### 二、分区方案建议 安装Ubuntu 18.04时选择**手动分区**("Something else"选项),建议配置如下: 1. **根分区(/)** - 大小:`20GB`(最低建议) - 类型:`Ext4` - 挂载点:`/` 2. **交换分区(swap)** - 大小:与物理内存相同(例如`8GB`) - 类型:`swap area` 3. **可选分区(/home)** - 若需独立存储用户数据,可单独分配,但需注意避免与22.04的`/home`冲突。 --- #### 三、安装关键步骤 1. **启动安装程序** - 插入U盘重启,选择`Try Ubuntu`进入Live环境。 - 点击桌面图标启动安装向导。 2. **分区配置** - 选择预留的未分配空间,按上述方案创建分区(下图示例): ``` /dev/nvme0n1p5 ext4 / 20GB /dev/nvme0n1p6 swap swap 8GB ``` 3. **Grub安装配置** - **重要!** 在"Device for boot loader installation"中选择磁盘(如`/dev/nvme0n1`),确保Grub写入主引导记录[^1]。 - 安装程序会自动检测现有Ubuntu 22.04系统并添加引导项。 --- #### 四、安装后配置 1. **更新Grub菜单** 进入Ubuntu 22.04系统,执行: ```bash sudo update-grub ``` 此时Grub会显示Ubuntu 22.04和18.04的双系统选项。 2. **验证引导顺序** - 若默认启动项为Ubuntu 18.04,可通过`sudo grub-set-default`修改优先级。 --- #### 五、常见问题解决 1. **Grub未正确识别双系统** - 使用Live USB启动,执行: ```bash sudo mount /dev/nvme0n1pX /mnt # X为Ubuntu 22.04根分区 sudo grub-install --root-directory=/mnt /dev/nvme0n1 sudo update-grub ``` 2. **分区冲突导致安装失败** - 确保Ubuntu 18.04的分区未与22.04重叠,尤其是`/boot/efi`(EFI系统分区)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vvw&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值