Centos7开启、关闭swap

1、前言

bash 复制代码
目前内存不足以支撑现有服务运行,基于是否能用和成本的平衡,最终考虑使用swap文件以解燃眉之急。

2、开启swap文件好处和坏处

bash 复制代码
#好处:
1. 无需重新分区,灵活便捷
适用于云服务器、虚拟机等无法修改磁盘分区的场景;
可随时创建、调整大小或删除,运维成本低。
2. 提供内存"安全缓冲"
当物理内存短暂不足时(如夜间批处理、突发流量),swap 可防止进程被 OOM Killer 直接杀死;
为管理员争取排查和干预的时间窗口。
3. 满足某些软件的安装或运行要求
Oracle Database、SAP 等企业软件强制要求配置一定比例的 swap;
某些旧版应用或脚本会检查 /proc/swaps,无 swap 则拒绝启动。
4. 节省初期资源规划压力
在资源评估不充分的初期部署中,swap 可作为"兜底"方案,避免因小内存导致频繁故障。
5. 比 swap 分区更易管理
文件形式便于备份、迁移、权限控制;
多个 swap 文件可按优先级(swapon -p)使用,实现简单分级存储(如 SSD + HDD)。
#缺点:
1. 性能显著下降(尤其在高负载时)
磁盘 I/O 速度远低于内存(SSD 约慢 100 倍,HDD 慢 10,000 倍);
一旦频繁 swap,系统会陷入 "thrashing"(抖动):CPU 大量时间用于换页,服务响应变慢甚至卡死。
2. 掩盖真实问题,延迟故障暴露
内存泄漏或配置错误被 swap "吸收",导致问题潜伏更久、爆发更猛;
运维可能误判为"系统还能扛",错过扩容或优化时机。
3. 增加磁盘空间和 I/O 压力
swap 文件占用宝贵磁盘空间(尤其在小容量云盘上);
高频 swap 会加速 SSD 寿命损耗,或拖慢共享存储(如 NAS、云盘)。
4. 不被现代架构推荐,甚至禁止
Kubernetes 官方要求禁用 swap(kubelet 启动失败);
Redis、Elasticsearch、Cassandra 等高性能中间件强烈建议关闭 swap,以保证低延迟和可预测性。
5. 配置不当可能导致系统启动失败
若 /etc/fstab 中引用了不存在的 swap 文件,部分 Linux 发行版会在启动时卡住或进入 emergency mode。
6. 安全性风险(次要但存在)
swap 文件可能包含敏感数据(如密码、密钥),若未设 chmod 600 或未加密磁盘,存在泄露风险。

3、场景应用推荐

使用场景 是否推荐手动 swap
云服务器(小内存,如 1--2GB) 可加 1--2GB 作为缓冲
数据库服务器(MySQL/PostgreSQL) 不推荐,应靠内存+优化
Kubernetes / Docker 节点 必须禁用
Web 应用服务器(Nginx + PHP/Java) 仅临时应急,长期应扩容
开发/测试环境 推荐,方便调试内存问题
高并发/低延迟系统 绝对避免

4、开启swap

bash 复制代码
# 1. 创建 2GB 的 swap 文件(建议直接放在根目录)
dd if=/dev/zero of=/swapfile bs=1M count=2048

# 2. 设置安全权限(仅 root 可读写)
chmod 600 /swapfile

# 3. 格式化为 swap 文件系统
mkswap /swapfile

# 4. 立即启用 swap
swapon /swapfile

# 5. 验证是否生效
swapon --show
free -h

# 6. 配置开机自动挂载
vim /etc/fstab
/swapfile none swap sw 0 0

5、关闭swap(一定确保内存充足)

bash 复制代码
# 查看当前启用的 swap
swapon --show

# 禁用指定的 swap 文件(替换为你的实际路径)
swapoff /swapfile

#删除fstab中的自动挂载项
vim /etc/fstab
#/swapfile none swap sw 0 0

#删除swap文件
rm -rf /swapfile

6、扩容swap

1)新增加一个新的

2)先关闭删除swap文件,重新创建新的

相关推荐
AIgorithmGEEK2 分钟前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil20810 分钟前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)15 分钟前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障
mounter62520 分钟前
从硬件互连到操作系统变革:CXL 技术演进与 Linux 内核工程挑战
linux·运维·服务器
xh didida2 小时前
Linux -- 基础IO
linux·服务器·开发语言·c++
zly35003 小时前
centos7 mount设备挂载 /dev/sda1/硬盘挂载
linux·运维·服务器
工业一体机老司机3 小时前
工业一体机选购后的系统部署:Ubuntu下Docker容器化运行与GPIO配置
linux·ubuntu·docker·人机交互
哎呦,帅小伙哦3 小时前
进程监控工具——htop
linux·运维·服务器
夏虫不可与之言冰4 小时前
Windows WSL2 (Ubuntu) 搭建 ESP‑IDF 6.1 开发环境全过程演示
linux·windows·ubuntu·esp32·乐鑫科技·乐鑫eim·乐鑫代理商
春涧草茶5 小时前
慢就是快12-12手动抛出异常
java·linux·前端