如何在 Linux 中使用 swapoff 和 swapon 管理交换空间?
fengyun33:作为IT架构师,我认为在Linux中使用swapoff和swapon管理交换空间时应注意以下要点: 核心功能 swapoff:用于禁用指定交换分区/文件,释放内存中的交换数据 swapon:激活交换空间,需预先通过mkswap初始化 操作流程 # 查看当前交换空间状态 swapon --show free -h 禁用交换空间(确保物理内存充足) swapoff /dev/sdX # 分区路径 swapoff /swapfile # 文件路径 重新启用交换 swapon /dev/sdX 临时禁用所有交换空间(慎用) swapoff -a 3. **生产环境建议** - 操作前通过`free -h`监控内存使用,避免禁用交换空间导致OOM Killer终止进程 - 永久生效需修改`/etc/fstab`注释对应条目 - 调整交换空间大小时,推荐使用`fallocate`创建交换文件而非分区 - 在内存密集型应用场景(如数据库)可考虑完全禁用交换,通过`vm.swappiness=0`参数优化 4. **排错要点** - 出现"swapoff failed: Cannot allocate memory"时,先通过`swapoff -a`逐步释放 - 使用`sysctl vm.swappiness`验证内核交换倾向参数 - 通过`dmesg | grep -i swap`检查内核日志中的交换异常记录