在本教程中,我们将学习如何在 Ubuntu 22.04 上添加 Swap 内存。
Swap 内存是存储驱动器上的一个空间,当系统的物理 RAM 完全被使用时,会用到这个空间。它充当一个溢出空间来保存不活动的内存页,允许系统在高内存需求下平稳运行。本教程将指导你如何在 Ubuntu 22.04 服务器上添加交换内存,涵盖基本和高级配置。
本教程的目标是手把手教你如何在 Ubuntu 22.04 服务器上添加 Swap 内存。
若尚未拥有服务器,可前往 雨云官网 https://rainyun.ivwv.site 进行注册,新用户有专属优惠。
Swap 内存可以配置为:
1. Swap 分区: 存储设备上的一个专用分区。
2. Swap 文件: 文件系统上的一个文件,充当交换空间。
在现代系统中,swap 文件更加灵活且易于管理,使其成为首选。本教程侧重于创建和配置 swap 文件。
在添加 Swap 内存之前,检查你的系统是否已经配置了 Swap:
sudo swapon --sho
如果未显示任何输出,则表示未配置 Swap。你还可以验证系统的总内存和 Swap 使用情况:
free -
根据服务器的工作负载确定 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
设置正确的权限以防止未经授权的访问:
sudo chmod 600 /swapfile
ls -lh /swapfil
现在,该文件应该只能由 root 用户读取和写入。
将文件标记为 Swap:
sudo mkswap /swapfil
你应看到确认 Swap 文件设置的输出。
启用 Swap 文件:
sudo swapon /swapfil
验证 Swap 是否已激活:
sudo swapon --show
free -
为了确保在启动时启用 Swap 文件,请将其添加到 /etc/fstab
文件中:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fsta
swappiness
参数控制内核使用 Swap 的积极程度。值的范围是 0 到 100:
检查当前值:
cat /proc/sys/vm/swappiness
临时设置一个新值(例如,10):
sudo sysctl vm.swappiness=10
通过将设置添加到 /etc/sysctl.conf
使其永久生效:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
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 -
使用 htop
或 top
实时监控 Swap 使用情况:
sudo apt install htop
htop
为了获得更好的性能,启用 zswap —— 用于 Swap 页面的压缩缓存:
sudo vim /etc/default/grub
将以下参数添加到 GRUB_CMDLINE_LINUX
:
zswap.enabled=1
更新 GRUB:
sudo update-grub
sudo reboot
如果你需要删除 Swap 文件,请首先禁用它:
sudo swapoff /swapfile
从 /etc/fstab
中删除该条目并删除该文件:
sudo rm /swapfile
在本教程中,我们学习了如何在 Ubuntu 22.04 上添加 Swap 内存。添加 Swap 内存可以增强系统在繁重工作负载下的稳定性和性能。通过遵循本指南中的步骤,你可以在 Ubuntu 22.04 服务器上有效地配置 Swap,确保最佳的资源管理和对不同工作负载的适应性。