作为技术支持工程师,以下是我常用的解决方案,用于在 Linux 中通过 swapoff 和 swapon 管理交换空间:
-
查看当前交换空间状态
free -h
或swapon --show
,确认当前激活的交换分区/文件。 -
临时关闭交换空间(swapoff)
- 关闭单个交换分区:
sudo swapoff /dev/sdX
(替换为具体分区,如/dev/sda2) - 关闭所有交换空间:
sudo swapoff -a
- 若存在进程占用导致无法关闭,可尝试
swapoff -a -v
查看详细日志并终止相关进程。
- 关闭单个交换分区:
-
重新启用交换空间(swapon)
- 启用单个交换分区/文件:
sudo swapon /dev/sdX
或sudo swapon /swapfile
- 启用所有配置的交换空间:
sudo swapon -a
- 启用单个交换分区/文件:
-
永久移除交换空间(需修改配置)
- 编辑
/etc/fstab
,注释或删除对应交换分区/文件的行 - 执行
sudo swapoff -a
后重启系统。
- 编辑
-
调整交换文件(如扩容)
sudo swapoff /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1G count=8
(示例:创建8GB文件)sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
注意事项
- 操作前确保系统有足够物理内存,避免宕机
- 修改交换文件大小时需预留磁盘空间
- 若使用交换分区,建议通过分区工具(如parted)调整