Linux 系统 swap 分区使用详解

2025.5.30 杂七杂八 630

Linux 系统 swap 分区使用详解

本文深入解析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容量。

评论