swapoff 命令
基本介绍
swapoff 是 Linux 系统中用于禁用交换空间(swap space)的命令。它与 swapon 命令相对应,用于停止使用指定的交换分区或交换文件,将交换空间中的数据写回物理内存。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a
语法
swapoff [OPTIONS] [DEVICE]
常用选项
基本选项
- -a, –all:禁用 /etc/fstab 中所有标记为 swap 的设备
- -e, –ifexists:仅在设备存在时禁用
- -h, –help:显示帮助信息
- -V, –version:显示版本信息
显示选项
- -v, –verbose:显示详细信息
使用示例
1. 禁用指定交换分区
swapoff /dev/sda2
swapoff /dev/mapper/vg00-swap
2. 禁用交换文件
swapoff /swapfile
3. 禁用所有交换空间
swapoff -a
4. 详细模式禁用
swapoff -v /dev/sda2
输出示例:
swapoff /dev/sda2
5. 验证禁用结果
swapon –show
cat /proc/swaps
free -h
输出格式说明
成功执行
# 无输出,直接禁用成功
详细模式输出
swapoff /dev/sda2
错误输出示例
swapoff: /dev/sda2: swapoff failed: Cannot allocate memory
实用技巧
安全禁用交换空间
# 检查当前交换使用情况
free -h
# 如果交换空间正在被大量使用,先确保有足够内存
if [ $(free -m | grep Mem | awk '{print $4}') -gt 1000 ]; then
echo "Enough free memory, proceeding with swapoff"
swapoff /dev/sda2
else
echo "Not enough free memory to disable swap"
fi
临时禁用交换进行维护
# 禁用所有交换
swapoff -a
# 执行维护操作
# …
# 重新启用交换
swapon -a
脚本中安全禁用
#!/bin/bash
# 检查是否有足够的空闲内存
FREE_MEM=$(free -m | grep Mem | awk '{print $4}')
USED_SWAP=$(free -m | grep Swap | awk '{print $3}')
echo "Free memory: ${FREE_MEM}MB"
echo "Used swap: ${USED_SWAP}MB"
if [ "$FREE_MEM" -gt "$USED_SWAP" ]; then
echo "Disabling swap…"
swapoff -a
echo "Swap disabled successfully"
else
echo "Error: Not enough free memory to disable swap"
exit 1
fi
禁用交换后调整系统参数
# 禁用交换
swapoff -a
# 设置 swappiness 为 0(避免系统使用交换)
echo 0 > /proc/sys/vm/swappiness
相关命令
- swapon:启用交换空间
- mkswap:格式化交换分区或文件
- free:显示内存和交换空间使用情况
- vmstat:显示虚拟内存统计信息
- /proc/swaps:交换空间信息文件
- fallocate:创建文件
- dd:创建文件(可用于创建交换文件)
注意事项
总结
swapoff 是 Linux 系统中用于禁用交换空间的工具。它与 swapon 命令相对应,用于停止使用指定的交换分区或交换文件。禁用交换空间前需要确保系统有足够的物理内存,否则可能导致系统性能下降或进程被杀死。swapoff 常用于系统维护、性能测试或临时禁用交换的场景。



