当前位置: 首页 > news >正文

Linux swap 分区频繁交换导致系统卡顿如何优化 swappiness 参数?

调整 swappiness 参数只能缓解因内存压力导致的交换行为,无法解决物理内存不足的根本问题,适合数据库或需要低延迟的应用场景。

先说结论:降低 swappiness 值可以减少内核将内存页交换到磁盘的倾向,从而降低因磁盘 I/O 引起的卡顿,但前提是物理内存尚有剩余。

  • 先定位:确认系统卡顿是否由 swap 频繁读写引起
  • 先做:临时调整参数观察效果,再写入配置文件
  • 再验证:监控 swap 使用率和系统负载变化

命令速用版

# 查看当前值
cat /proc/sys/vm/swappiness# 临时设置为 10(重启失效)
sudo sysctl -w vm.swappiness=10# 永久生效,写入配置文件
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

为什么会这样

swappiness 是内核参数 vm.swappiness 的简称,取值范围 0 到 100。它控制内核在内存压力下,倾向于回收匿名内存(应用程序数据)还是页面缓存(文件系统数据)。

默认值通常为 60。数值越高,内核越积极地将内存数据交换到磁盘 swap 分区;数值越低,内核越倾向于保留数据在物理内存中。当物理内存紧张时,高 swappiness 会导致频繁磁盘 I/O,从而引起系统响应变慢。

分步处理

1. 确认当前状态

使用 free 命令查看内存和 swap 使用情况,结合 vmstat 观察 si(swap in)和 so(swap out)列是否有持续非零值。

free -h
vmstat 1 5

2. 临时调整测试

先不要修改配置文件,使用 sysctl 临时调整。建议从默认值逐步下调,例如设为 10。

sudo sysctl -w vm.swappiness=10

3. 永久固化配置

确认调整后系统稳定,再将参数写入 sysctl 配置文件。不同发行版路径可能略有差异,常见为 /etc/sysctl.conf 或 /etc/sysctl.d/ 下的文件。

echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

怎么验证是否生效

修改后再次读取参数确认值已变更。继续运行 vmstat 观察 si/so 列频率是否降低。同时关注系统负载(load average)和应用程序响应速度。

cat /proc/sys/vm/swappiness
vmstat 1

如果 swap 使用率不再持续上升,且磁盘等待时间(iowait)下降,说明调整起到了缓解作用。

常见坑

  • 设为 0 不等于禁用 swap:在较新的内核版本中,设置为 0 仅代表最小化交换倾向,并非完全禁用 swap 功能。
  • 物理内存不足风险:过度降低 swappiness 可能导致物理内存耗尽时,内核更早触发 OOM Killer 杀死进程,而不是交换数据。
  • 治标不治本:如果物理内存确实不够用,调整参数只能延迟问题爆发,根本方案是增加内存或优化应用内存占用。

参考来源

  • Linux Kernel Documentation - vm/swappiness
  • man page: proc(5), sysctl(8)

原文链接:https://www.zjcp.cc/ask/10862.html

http://www.jsqmd.com/news/799039/

相关文章:

  • Speechless:三分钟掌握微博内容永久备份的终极方案
  • Navicat连不上MySQL 8?别急着升级,试试这个修改加密规则的命令(解决1251错误)
  • 联想R7000 2020款换屏踩坑实录:从龙腾到京东方4K,我花了XX元搞定了(附详细拆机教程)
  • Python爬虫/请求报ProxyError?手把手教你定位WinError 10061是代理问题还是服务问题
  • 技术决策的后悔药:选型错误后的补救策略
  • 从推特动态到天气解码:维特比算法在HMM中的实战推演
  • ESXi 7.0 双网口异构驱动下的网络隔离与高可用管理方案(华擎H570itx、iKuai实战)
  • 2026年温州全屋定制怎么选?实力公司深度解析 - 2026年企业推荐榜
  • 混合专家模型(MoE)在工业工艺优化中的应用
  • 2026年青岛旅游包车平台深度**:云尚景国际旅行社等优质服务商甄选指南 - 2026年企业推荐榜
  • emed64_20.9.2文本编辑器安装步骤详解(附EmEditor配置与大文件编辑教程)
  • 如何快速掌握FModel:虚幻引擎游戏资源提取完整指南
  • 从‘散沙’到‘精钢网’:CVT算法如何像‘智能磁铁’一样规整你的3D点云?
  • 代码质量门禁设置:SonarQube集成与规则定制
  • 2026年Q2天镇地区钢筋混凝土排水管实力供应商推荐:张家口德沃水泥制品有限公司 - 2026年企业推荐榜
  • 别慌!AI不会淘汰测试,只会淘汰“只会点鼠标”的人:2026测开生存指南
  • 本地AI伴侣NightClaw:构建具身化、有记忆的智能体框架
  • 每日热门skill:告别SQL焦虑!这个OpenClaw Skill让我用“人话“查数据库,效率提升10倍
  • 终极指南:如何快速解锁《原神》60帧限制,体验丝滑高帧率游戏
  • 【应用】OpenClaw + Dify 组合写小说
  • VisIt在Windows平台下的数据接口编程与实战:从Silo文件生成到可视化呈现
  • 2026年5月更新:大连新房全屋装修的行业标准与高口碑服务商解析 - 2026年企业推荐榜
  • 内网穿透与远程开发环境配置:让居家办公更高效
  • 用Turtle库的50行代码,绘制一朵动态绽放的玫瑰
  • 虚实精准同构 空间自然孪生:依托像素地理映射架构,建立视频孪生实景三维原生构建体系
  • 2026年5月新发布:南京地区高可靠性食用菌栽培种供应商深度解析与选择指南 - 2026年企业推荐榜
  • 2026年当下,内江食品包装生产厂实力解析:如何联系高性价比供应商 - 2026年企业推荐榜
  • 六边形网格地图中的移动范围与路径规划
  • 2026年5月盘点:为何安利特机械的特种电磁阀备受高端市场信赖? - 2026年企业推荐榜
  • 终极指南:3分钟用纯C语言工具解锁网易云音乐NCM加密文件