为什么需要为服务器增加Swap空间?
Swap(交换分区)是Linux系统中的虚拟内存,当物理内存(RAM)不足时,系统会将部分暂时不用的数据转移到硬盘空间,合理配置Swap能:
- 避免内存耗尽导致服务崩溃
- 提升系统处理突发高负载的能力
- 为内存密集型应用提供缓冲空间
检查现有Swap配置
执行命令查看当前Swap状态:
free -h
swapon --show
输出示例:
Swap: 2.0G 0B 2.0G
创建Swap文件(适用于所有Linux发行版)
步骤1:分配存储空间
使用fallocate
快速创建文件(推荐):
sudo fallocate -l 4G /swapfile
传统文件创建方式:
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
步骤2:设置文件权限
sudo chmod 600 /swapfile
步骤3:格式化Swap文件
sudo mkswap /swapfile
步骤4:启用Swap空间
sudo swapon /swapfile
永久生效配置
编辑/etc/fstab
文件:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
关键参数调优指南
参数 | 推荐值 | 作用说明 |
---|---|---|
vm.swappiness | 10-60 | 控制内存交换倾向(数值越高越积极使用Swap) |
vm.vfs_cache_pressure | 50-100 | 调整文件系统缓存回收策略 |
配置示例:
sudo sysctl vm.swappiness=30
sudo sysctl vm.vfs_cache_pressure=50
Swap空间最佳实践
- 生产环境建议Swap大小:
- 内存≤2GB:Swap=2倍内存
- 内存2-8GB:Swap=等同内存
- 内存≥8GB:Swap=4-8GB
- 使用SSD时建议设置
vm.swappiness=10
- 定期监控Swap使用率:
vmstat 1 5
️ 注意事项
- 避免在已存在Swap分区时重复配置
- 机械硬盘建议设置较小的swappiness值
- 云主机需检查是否支持Swap功能
- Swap不是物理内存替代品,长期高使用率需考虑升级内存
引用资料
- Linux内核文档:vm.swappiness参数说明
- Red Hat知识库:内存优化指南
- Ubuntu Wiki:Swap配置FAQ