Swap常用操作
Linux Swap 常用操作指南
Swap(交换空间)是Linux系统中用于内存扩展的磁盘空间,当物理内存(RAM)不足时,系统会将不活跃的内存页移动到Swap空间。
1. 查看当前Swap使用情况
free -h
# 或
swapon --show
# 或
cat /proc/swaps
2. 查看内存和Swap使用详情
top
# 然后按 M 按内存排序,按 P 按CPU排序
# 或者使用
htop
3. 创建Swap文件
# 创建一个4GB的Swap文件
sudo fallocate -l 4G /swapfile
# 或者使用dd命令(较慢但更可靠)
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
# 设置正确的权限
sudo chmod 600 /swapfile
# 格式化Swap文件
sudo mkswap /swapfile
# 启用Swap文件
sudo swapon /swapfile
4. 永久启用Swap文件
编辑 /etc/fstab
文件,添加以下行:
/swapfile none swap sw 0 0
5. 调整Swap使用倾向(swappiness)
swappiness值范围0-100,表示系统使用Swap的倾向程度(默认通常为60)
# 查看当前值
cat /proc/sys/vm/swappiness
# 临时修改(重启后失效)
sudo sysctl vm.swappiness=10
# 永久修改
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
6. 调整缓存压力(vfs_cache_pressure)
# 查看当前值
cat /proc/sys/vm/vfs_cache_pressure
# 临时修改
sudo sysctl vm.vfs_cache_pressure=50
# 永久修改
echo "vm.vfs_cache_pressure=50" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
7. 禁用并删除Swap文件
# 禁用Swap
sudo swapoff /swapfile
# 删除Swap文件
sudo rm /swapfile
# 从/etc/fstab中删除相关行
sudo nano /etc/fstab
8. 调整Swap空间大小
# 首先禁用Swap
sudo swapoff /swapfile
# 重新创建Swap文件(如改为8GB)
sudo fallocate -l 8G /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
9. 使用分区作为Swap
# 创建Swap分区(假设为/dev/sdb1)
sudo mkswap /dev/sdb1
sudo swapon /dev/sdb1
# 添加到/etc/fstab
/dev/sdb1 none swap sw 0 0
10. 监控Swap使用
# 实时监控
watch -n 1 free -h
# 查看哪些进程在使用Swap
sudo smem -s swap -r
# 或
sudo swapon --show
最佳实践建议
- 对于现代系统(RAM ≥ 4GB),可以设置较低的swappiness值(如10-30)
- 对于SSD,可以考虑减少Swap使用以延长SSD寿命
- Swap大小通常建议:
- RAM < 2GB:Swap = 2倍RAM
- 2GB ≤ RAM < 8GB:Swap = 等于RAM
- RAM ≥ 8GB:Swap = 0.5倍RAM或更少
- 生产服务器建议使用独立Swap分区而非Swap文件
这些操作可以帮助你有效管理Linux系统中的Swap空间,优化系统性能。
No Comments