✅ 1. 什么是 Swap?
Swap(交换空间) 是 Linux 系统中用于辅助物理内存(RAM)的一种虚拟内存。它在物理内存不足时,将部分数据临时存储在磁盘上的专用空间中,从而缓解内存压力,防止系统崩溃。
- 物理内存(RAM): 系统主要运行数据的临时存储区域,速度快。
- 交换空间(Swap): 当物理内存不足时,Linux 将部分数据换出到 Swap 中,释放 RAM 以供其他进程使用。
✅ 作用
- 防止内存溢出:当内存不够时,使用 Swap 避免程序崩溃。
- 支持休眠:休眠时,RAM 数据写入到 Swap 中。
- 系统性能优化:适当的 Swap 可提高系统稳定性。
✅ 缺点
- 速度慢:磁盘 I/O 速度远低于 RAM,频繁使用 Swap 会显著降低性能。
- 磁盘磨损:在 SSD 上使用 Swap 可能会影响寿命。
🔥 2. 查看当前 Swap 信息
在 Linux 中,常用以下命令查看 Swap 使用情况:
# 查看 Swap 使用情况
free -h
# 查看 Swap 分区信息
swapon --show
# 查看 Swap 空间大小和使用率
cat /proc/swaps
# 使用 htop 查看内存和 Swap 信息
htop✅ 示例输出
$ free -h
total used free shared buff/cache available
Mem: 7.8Gi 2.5Gi 4.3Gi 237Mi 1.0Gi 4.8Gi
Swap: 2.0Gi 512Mi 1.5Gi- total:总内存大小。
- used:已使用的 Swap 空间。
- free:可用 Swap 空间。
⚙️ 3. 创建 Swap 空间
如果你的系统没有 Swap 分区或想要扩展 Swap 空间,可以手动创建:
🛠️ 3.1 创建 Swap 文件
1️⃣ 创建一个新的 Swap 文件
sudo fallocate -l 2G /swapfile # 创建 2G Swap 文件
# 如果 fallocate 不支持,可以使用 dd 命令
# sudo dd if=/dev/zero of=/swapfile bs=1M count=20482️⃣ 设置正确权限
sudo mkswap /swapfile3️⃣ 格式化为 Swap 格式
sudo mkswap /swapfile4️⃣ 启用 Swap 文件
sudo swapon /swapfile5️⃣ 验证 Swap 状态
swapon --show✅ 示例输出
NAME TYPE SIZE USED PRIO
/swapfile file 2G 0B -26️⃣ 永久生效 将 Swap 文件添加到 /etc/fstab:
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab🛠️ 4. 调整 Swap 大小
如果你想扩展或缩小现有的 Swap 空间:
1️⃣ 禁用当前 Swap
sudo swapoff /swapfile2️⃣ 调整 Swap 大小
sudo fallocate -l 4G /swapfile # 扩展为 4G
sudo chmod 600 /swapfile
sudo mkswap /swapfile3️⃣ 重新启用
sudo swapon /swapfile⚙️ 5. 删除 Swap 空间
如果不再需要 Swap 文件,可以删除:
1️⃣ 禁用 Swap
sudo swapoff /swapfile2️⃣ 移除配置 编辑 /etc/fstab 文件,删除相关行:
/swapfile swap swap defaults 0 03️⃣ 删除 Swap 文件
sudo rm /swapfile🔧 6. 调优 Swap 设置
Linux 使用 swappiness 参数控制内核在内存不足时使用 Swap 的倾向:
- 0:尽量避免使用 Swap,仅在 RAM 不足时使用。
1-100:数值越大,越倾向于使用 Swap。
- 一般服务器推荐值:
10-30 - 桌面系统推荐值:
60
- 一般服务器推荐值:
✅ 查看当前 swappiness
cat /proc/sys/vm/swappiness✅ 临时修改 swappiness
sudo sysctl vm.swappiness=10✅ 永久修改 swappiness 编辑 /etc/sysctl.conf:
sudo nano /etc/sysctl.conf添加:
vm.swappiness=10保存后生效:
sudo sysctl -p📊 7. Swap 与性能优化建议
服务器环境
- Swap 文件大小:物理内存的 1~2 倍。
swappiness:10~30,减少对磁盘的依赖。
桌面环境
- Swap 文件大小:等于物理内存大小。
swappiness:60~80,保证内存溢出时不崩溃。
特殊情况
- 如果使用 SSD,尽量减少 Swap,以减少磁盘磨损。
- 使用 ZRAM 压缩 Swap,提高性能:
sudo apt install zram-tools sudo systemctl enable --now zramswap
✅ 8. 总结
- Swap 是 Linux 系统在内存不足时使用的虚拟内存。
- 你可以使用 Swap 分区或 Swap 文件。
- 调整
swappiness参数可优化系统性能。 - 小心使用 Swap 于 SSD,避免频繁读写带来磁盘损耗。
- 在性能敏感的服务器环境中,尽量减少 Swap 的使用。
评论 (0)