悠悠楠杉
Linux交换分区(Swap)创建与激活完全指南
一、什么是Swap空间?
当物理内存(RAM)耗尽时,Linux内核会将非活跃内存页移动到预先配置的Swap空间——本质是磁盘上的虚拟内存区域。虽然读写速度远低于RAM(机械硬盘约差1000倍),但能有效防止系统因内存不足而崩溃。
二、创建前的关键决策
类型选择:
- 传统Swap分区:性能最优,需提前规划磁盘空间
- Swap文件:灵活性高,支持动态调整
- ZRAM压缩交换:适合小内存设备(如树莓派)
容量建议(根据红帽官方文档):
- RAM ≤ 2GB:Swap = RAM × 2
- 2GB < RAM < 8GB:Swap = RAM + 1GB
- RAM ≥ 8GB:至少4GB
三、4种创建方法详解
方法1:创建Swap文件(推荐新手)
bash
创建1GB的Swap文件
sudo fallocate -l 1G /swapfile
设置权限(必须600)
sudo chmod 600 /swapfile
格式化
sudo mkswap /swapfile
立即启用
sudo swapon /swapfile
永久生效(写入/etc/fstab)
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
注意:若fallocate
失败,可使用dd if=/dev/zero of=/swapfile bs=1M count=1024
方法2:使用独立分区(生产环境推荐)
bash
假设创建/dev/sda3为Swap分区
sudo fdisk /dev/sda # 创建新分区并修改类型为82(Linux swap)
sudo mkswap /dev/sda3
sudo swapon /dev/sda3
持久化配置同方法1
方法3:LVM交换卷(灵活扩容)
bash
sudo lvcreate -L 4G -n swap_lv vg01
sudo mkswap /dev/vg01/swap_lv
sudo swapon /dev/vg01/swap_lv
方法4:ZRAM压缩交换(低配设备)
bash
Ubuntu/Debian需先安装
sudo apt install zram-config
查看状态
cat /proc/swaps
四、高级配置技巧
优先级调整:bash
修改/etc/fstab中的sw参数(值越大优先级越高)
/swapfile none swap sw,pri=10 0 0
Swappiness优化:bash
查看当前值(默认60)
cat /proc/sys/vm/swappiness
临时修改为更保守的值(建议10-30)
sudo sysctl vm.swappiness=20
性能监控命令:
bash free -h # 查看使用概况 vmstat 1 # 实时监控si/so(交换入/出) swapon --show # 显示活动Swap设备
五、常见问题解决
Q:扩容Swap文件如何操作?
A:按顺序执行:
bash
sudo swapoff /swapfile
sudo fallocate -l 2G /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Q:收到"swap area has duplicate UUID"警告?
A:使用mkswap -U new-uuid /dev/sdX
生成新UUID
Q:如何彻底移除Swap?
A:先swapoff
,再删除对应文件/分区,最后清理/etc/fstab
条目
通过合理配置Swap空间,你的Linux系统将获得更稳定的内存管理能力。建议定期监控free
和vmstat
输出,根据实际负载调整Swap策略。对于现代SSD设备,Swap文件的性能损耗已大幅降低,成为多数场景的优选方案。