插件窝 干货文章 linux交换空间有什么用

linux交换空间有什么用

内存 交换 空间 休眠 1012    来源:    2025-05-01

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)可能建议禁用以避免性能波动。

通过合理配置交换空间,可在内存不足时保障系统稳定,但需根据实际硬件和工作负载调整策略。

下一篇:linux lun是什么