- 首页 >
- 问答 >
-
云计算 >
- Ubuntu Swapper如何节省磁盘空间
Ubuntu Swapper如何节省磁盘空间
小樊
36
2025-12-21 22:22:02
Ubuntu 交换空间节省磁盘空间的实用做法
先厘清概念与风险
- 你提到的“Swapper”在 Ubuntu 中通常指的是交换空间 Swap(用于内存不足时把不活跃页面换出到磁盘)。Swap 会占用磁盘空间,大小需要在“够用”和“省空间”之间平衡。
- 降低 Swap 占用的主要思路是:让系统更少使用 Swap、把 Swap 调整到更合适的大小,必要时临时关闭或删除。注意:关闭或减少 Swap 可能导致内存紧张时性能下降,甚至触发 OOM;若需要休眠(Hibernate),Swap 空间通常需≥物理内存容量。
操作步骤
- 评估当前 Swap 使用情况
- 查看是否启用及大小:
swapon --show 或 free -h
- 观察是否被频繁使用:
vmstat 1 10 或 sar -B 1 10(si/so 列不为 0 表示有换入/换出)
- 目的:确认是否真的“占用过多”,避免盲目缩小。
- 减少 Swap 使用频率(不改大小也能“省空间”)
- 查看与临时调整内核参数:
cat /proc/sys/vm/swappiness;sudo sysctl vm.swappiness=10(范围 0–100,数值越小越倾向使用物理内存)
- 永久生效:在
/etc/sysctl.conf 添加 vm.swappiness=10 后重启或 sysctl -p
- 说明:降低 swappiness 能减少换出,从而降低 Swap 文件的实际写入与占用波动,但不会释放已占用的磁盘空间。
- 调整 Swap 大小(真正释放磁盘空间)
- 若使用 Swap 文件(Ubuntu 18.04+ 默认):
sudo swapoff /swapfile
sudo rm /swapfile
- 按需重建更小文件(示例 2GB):
sudo fallocate -l 2G /swapfile(或 dd if=/dev/zero of=/swapfile bs=1G count=2)
sudo chmod 600 /swapfile
sudo mkswap /swapfile && sudo swapon /swapfile
- 在
/etc/fstab 确保有:/swapfile none swap sw 0 0
- 若使用 Swap 分区:
sudo swapoff -a
- 用
lsblk/fdisk 找到交换分区,删除并重建为更小尺寸(或改为文件形式以便后续灵活调整)
sudo mkswap /dev/sdX 后 sudo swapon /dev/sdX
- 更新
/etc/fstab 对应条目
- 验证:
free -h、swapon --show
- 提示:若你依赖休眠,请勿把 Swap 缩得小于物理内存。
- 虚拟机场景的额外建议
- 在虚拟机设置中适度减少已分配的 RAM,可相应下调 Swap 大小;
- 执行系统瘦身(清理包缓存、日志、临时文件等)以释放更多磁盘空间;
- 完成后执行虚拟机磁盘整理/压缩以回收空间。
常见场景与建议大小
- 桌面/轻度开发(内存充足):可把 Swap 设为较小值(如 2–4GB)或适度降低 swappiness,兼顾体验与空间。
- 服务器(内存较大):通常无需“内存×2”的夸张配置,很多场景设置为≈物理内存或更低即可,避免浪费。
- 需要休眠:Swap 容量≥物理内存,否则休眠会失败。