如何配置 Swap 交换分区?

2025.5.29 杂七杂八 560

如何配置 Swap 交换分区? 杂七杂八-第1张

Swap交换分区是Linux系统中重要的虚拟内存机制,可在物理内存不足时提供扩展支持。本文将详细介绍通过文件或分区创建Swap的步骤,包括容量规划、性能优化及安全配置建议,帮助用户高效管理系统内存资源。

一、什么是Swap交换分区?

Swap是磁盘上的一块特殊空间,当物理内存(RAM)耗尽时,系统会将非活跃内存页转移到此处。虽然读写速度远低于RAM,但能有效防止系统因内存不足而崩溃。

二、配置前的准备工作

1. 检查现有Swap状态

free -h
swapon --show

2. 确定Swap大小(推荐值)

  • RAM ≤ 2GB:Swap = 2倍RAM
  • 2GB < RAM < 8GB:Swap = 等于RAM
  • 8GB:Swap = 0.5倍RAM(最大不超过8GB)

三、通过分区创建Swap(推荐方案)

1. 创建新分区

 使用fdisk/gdisk创建新分区(类型代码82/Linux swap)
sudo fdisk /dev/sdX
n → [按提示操作] → t → 82 → w

2. 格式化并启用

sudo mkswap /dev/sdXn
sudo swapon /dev/sdXn

3. 永久生效配置

echo '/dev/sdXn none swap sw 0 0' | sudo tee -a /etc/fstab

四、通过文件创建Swap(无可用分区时)

1. 创建交换文件

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile

2. 格式化并激活

sudo mkswap /swapfile
sudo swapon /swapfile

3. 持久化配置

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

五、高级优化配置

1. 调整swappiness值(0-100)

 临时修改(推荐值10-60)
sudo sysctl vm.swappiness=30

 永久生效
echo 'vm.swappiness=30' | sudo tee -a /etc/sysctl.conf

2. 提升交换文件性能

 禁用最后访问时间记录
sudo tune2fs -o nobarrier /dev/sdXn
sudo mount -o remount,noatime /

六、安全注意事项

  • 加密Swap分区(使用cryptsetup)
  • 定期监控Swap使用率:vmstat 1
  • SSD设备建议降低swappiness以减少写入损耗

通过合理配置Swap空间,可显著提升系统在内存压力下的稳定性。建议服务器环境优先使用独立分区方案,桌面用户可采用交换文件实现灵活调整。

评论