linux交换空间有什么用
Linux交换空间(Swap Space)的主要作用是扩展系统的可用内存,提升稳定性和性能。以下是其核心用途及详细说明:
1. 物理内存不足时的后备空间
- 内存扩展:当物理内存(RAM)耗尽时,系统将不活跃的进程数据移至交换空间,腾出RAM供活跃进程使用。
- 避免OOM:防止因内存不足触发OOM Killer强制终止进程,导致服务中断(尤其对数据库、长期运行的服务关键)。
2. 支持休眠(Hibernation)
- 保存内存状态:休眠时,系统将RAM内容完整写入交换空间,关机后恢复时重新加载,确保工作状态不丢失。
- 要求:交换空间大小需 ≥ 物理内存容量。
3. 优化内存管理
- 移出冷数据:内核将长时间未访问的内存页(如后台服务)移至交换空间,提高RAM利用率。
- 缓解内存压力:即使内存未耗尽,提前使用交换空间可减少突发负载导致的卡顿。
4. 应对内存峰值
- 缓冲突发需求:处理临时大文件或高峰请求时,交换空间作为缓冲,避免系统崩溃。
5. 小内存系统的必需品
- 老旧/低配设备:RAM有限的设备(如树莓派、旧PC)依赖交换空间维持多任务运行。
注意事项
- 性能权衡:交换空间位于磁盘(HDD/SSD),速度远低于RAM,频繁交换可能降低性能。
- 建议大小:
- 传统建议:RAM的1~2倍(适用于旧时代小内存机器)。
- 现代建议:
- 桌面/大内存服务器:4GB以下交换空间或禁用(除非需休眠)。
- 云服务器:若无休眠需求,可禁用或设少量(如1GB)作为应急。
- SSD影响:频繁交换可能缩短SSD寿命,需权衡使用。
如何配置
- 查看当前交换空间:
bash
free -h
swapon --show
- 创建交换文件(无需分区):
bash
sudo fallocate -l 2G /swapfile # 创建2GB文件
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
- 永久生效:将
/swapfile swap swap defaults 0 0
添加到 /etc/fstab
。
何时禁用交换空间?
- 物理内存充足且无需休眠时。
- 高负载数据库服务器(如Oracle、Redis)可能建议禁用以避免性能波动。
通过合理配置交换空间,可在内存不足时保障系统稳定,但需根据实际硬件和工作负载调整策略。