检查是否需要更多交换空间
交换空间在内存不足时为系统提供额外空间,但速度远低于 RAM。请查看 available 列,而非 free 列,因为 Linux 会将未使用的内存用作缓存,并在需要时释放。持续发生交换活动意味着服务器需要更多内存或更少进程,增加交换空间无法解决这个问题。
free -h
swapon --show
vmstat 1 5创建交换文件
先检查磁盘可用空间,再创建文件、限制权限、格式化并启用。该文件必须仅允许 root 读取。
df -h /
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
swapon --show重启后继续使用
先备份 /etc/fstab,再向其中添加一行。fstab 中的错误可能导致系统无法正常启动,因此请在重启前验证该文件。
sudo cp /etc/fstab /etc/fstab.backup
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo findmnt --verify调整交换文件大小
停用交换空间前,请确保其中的内容能放入可用内存:swapoff 会将内容移回 RAM,若内存容纳不下,进程可能被终止。然后停用该文件,以新的大小重新创建,再启用。只要路径不变,fstab 中的那一行就无需更改。
free -h
sudo swapoff /swapfile
sudo fallocate -l 4G /swapfile
sudo mkswap /swapfile
sudo swapon /swapfileBtrfs 和 zram
在 Btrfs 上,交换文件需要特殊处理:请使用 btrfs filesystem mkswapfile,并注意包含交换文件的子卷不能纳入快照。zram 与交换文件不同,它将压缩后的内存页保存在 RAM 中,而非磁盘上,且由自己的服务管理,不通过 fstab 管理。
CH-J Server Manager 中的交换空间
System Monitor 显示 RAM 使用分布、RAM 和交换空间的历史记录,以及每个交换区域的类型、优先级和活动情况。拥有 root 或 sudo 权限时,可以在 ext2/3/4、XFS、Btrfs 和 F2FS 上,创建、启用、停用、调整大小和删除位于 /swapfile*、/swap/<name> 或 /var/lib/swap/<name> 的交换文件,大小范围为 64 MiB 至 64 GiB。若交换空间中的内容无法放入内存,应用程序会拒绝停用,并会在每次更改前备份 /etc/fstab。此处 zram 和 zswap 仅供查看,无法修改。