如何清理Swap空间中的垃圾
导读:Linux 清理 Swap 的正确做法 一、先判断是否需要清理 使用命令查看内存与 Swap 使用情况:free -h、swapon --show 或 cat /proc/swaps。Swap 的使用是内核按需换出的结果,并非“垃圾文件”...
Linux 清理 Swap 的正确做法
一、先判断是否需要清理
- 使用命令查看内存与 Swap 使用情况:free -h、swapon --show 或 cat /proc/swaps。Swap 的使用是内核按需换出的结果,并非“垃圾文件”,通常无需频繁清理。若应用确实需要更多内存,应优先增加物理内存或优化应用内存占用。
二、安全清理步骤(推荐)
- 步骤1:先尽可能将脏页写回磁盘,减少清理时的回写压力:sync。
- 步骤2(可选):释放 PageCache、dentries 与 inodes,给内核回收内存留出空间(对释放 Swap 并非必须):echo 3 > /proc/sys/vm/drop_caches。注意该操作不会释放“脏对象”,因此先执行 sync。
- 步骤3:关闭并重新启用 Swap,使已换出的页面被丢弃并重新按需换入:sudo swapoff -a & & sudo swapon -a。此过程可能需要较长时间,且在此期间系统负载会上升,请在业务低峰期执行。
- 步骤4:验证结果:free -h 或 swapon --show 查看 Swap 已恢复低位。以上做法适用于 Ubuntu、CentOS 等常见发行版。
三、降低后续 Swap 使用频率
- 调整内核参数 vm.swappiness,降低内核使用 Swap 的倾向(临时生效):sudo sysctl vm.swappiness=10;永久生效:在 /etc/sysctl.conf 中添加或修改 vm.swappiness=10,然后执行 sudo sysctl -p。数值范围为 0–100,一般更低的值代表更少使用 Swap(注意:设置为 0 并不等于完全禁用 Swap)。
- 若条件允许,优先增加物理内存(RAM),这是从根本上减少 Swap 使用的最有效方式。
四、不建议或仅在明确场景下使用的操作
- 不建议“频繁定时清理”Swap(如用 cron 每天执行 swapoff/swapon),这会带来性能抖动与不必要的 I/O 压力;仅在确有需要时执行,并尽量安排在低峰时段。
- 不建议为了“清理”而直接 删除 Swap 文件/分区 或改写 Swap 分区内容(如用 dd 清零)。若确需移除 Swap,应先 swapoff -a,再在 /etc/fstab 中注释相关条目,必要时调整引导配置;此类操作有启动失败风险,务必先备份并确认设备名称与配置无误。
五、Windows 的虚拟内存说明
- Windows 的“虚拟内存”(分页文件 pagefile.sys)与 Linux 的 Swap 机制不同。若需释放磁盘占用,可在“系统属性 → 高级 → 性能设置 → 高级 → 虚拟内存”中调整或暂时关闭分页文件,并重启;关闭前请确保系统稳定且有足够物理内存,以免影响稳定性。
- 若需释放“休眠文件”占用的磁盘空间,可在管理员命令行执行:powercfg -h off,然后重启。该操作会禁用休眠功能。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何清理Swap空间中的垃圾
本文地址: https://pptw.com/jishu/752699.html
