本文深入解析Linux系统中swap分区的作用、配置方法及优化策略,涵盖swap空间的工作原理、创建/调整实践命令、性能调优建议,帮助系统管理员合理管理内存资源,提升服务器稳定性。
一、什么是swap分区?
swap分区(交换分区)是Linux系统中用于扩展物理内存的磁盘空间,当物理内存(RAM)不足时,系统会将不活跃的内存页临时存储到swap空间,防止进程因内存不足被强制终止。
二、swap的核心作用
- 内存扩展:作为RAM的补充
- 休眠支持:保存内存状态到磁盘
- 内存压力缓冲:避免OOM(Out-Of-Memory)错误
三、swap分区配置实践
1. 查看当前swap信息
free -h
swapon --show
2. 创建swap分区(以4GB为例)
创建swap文件
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
格式化并激活
sudo mkswap /swapfile
sudo swapon /swapfile
永久生效
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
3. 调整swappiness参数
查看当前值(默认60)
cat /proc/sys/vm/swappiness
临时修改为更保守的值(推荐服务器设为10-30)
sudo sysctl vm.swappiness=20
永久生效
echo 'vm.swappiness=20' | sudo tee -a /etc/sysctl.conf
四、高级优化建议
- SSD优化:使用
discard
选项启用TRIM - 性能监控:通过
vmstat 1
观察si/so值 - NUMA系统:考虑使用
numactl
分配swap空间
五、常见问题排查
检查swap使用详情
cat /proc/meminfo | grep -i swap
追踪swap占用进程
sudo smem -s swap -r
合理配置swap空间需要根据服务器实际负载、内存容量和磁盘性能综合考量。对于现代大内存服务器,可适当减少swap空间,而内存有限的VPS则应保证足够的swap容量。
评论