慈溪市文章资讯

Linux调整Swap空间大小的扩容分区技巧

2026-03-26 09:44:01 浏览次数:0
详细信息

分区扩容文件扩容

一、查看当前 Swap 使用情况

# 查看当前 Swap 信息
free -h
swapon --show
cat /proc/swaps

二、方法1:使用 Swap 文件扩容(推荐)

这是最简单灵活的方法,适用于大部分场景:

1. 创建新的 Swap 文件

# 创建 4GB 的 Swap 文件
sudo fallocate -l 4G /swapfile

# 或者使用 dd(如果 fallocate 不可用)
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

# 设置权限
sudo chmod 600 /swapfile

# 格式化为 Swap
sudo mkswap /swapfile

# 启用新的 Swap 文件
sudo swapon /swapfile

2. 设置开机自动挂载

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

3. 调整 Swappiness 参数(可选)

# 查看当前值
cat /proc/sys/vm/swappiness

# 临时调整(推荐值:10-60)
sudo sysctl vm.swappiness=30

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

三、方法2:使用 LVM 调整 Swap 分区大小

如果 Swap 在 LVM 逻辑卷上:

1. 查看 LVM 配置

sudo lvs
sudo vgs
sudo pvs

2. 扩展逻辑卷

# 关闭 Swap
sudo swapoff -v /dev/vgname/swap_lv

# 扩展逻辑卷(增加 4G)
sudo lvextend -L +4G /dev/vgname/swap_lv

# 重新格式化
sudo mkswap /dev/vgname/swap_lv

# 重新启用
sudo swapon /dev/vgname/swap_lv

四、方法3:调整独立 Swap 分区

1. 使用 fdisk/gdisk 调整分区

# 1. 关闭 Swap
sudo swapoff /dev/sdXN

# 2. 删除原分区并重新创建(使用相同起始扇区)
sudo fdisk /dev/sdX
# 在 fdisk 中:d -> n -> p -> 输入起始扇区 -> 输入新大小

# 3. 重新格式化
sudo mkswap /dev/sdXN

# 4. 启用 Swap
sudo swapon /dev/sdXN

# 5. 更新 /etc/fstab

五、方法4:结合使用多个 Swap 空间

可以同时使用多个 Swap 文件或分区:

# 创建第二个 Swap 文件
sudo fallocate -l 2G /swapfile2
sudo chmod 600 /swapfile2
sudo mkswap /swapfile2
sudo swapon /swapfile2

# 查看所有激活的 Swap
swapon --show

六、安全注意事项

1. 数据备份

2. 内存考虑

3. 性能优化

# 调整缓存压力
sudo sysctl vm.vfs_cache_pressure=50

# 验证设置
sudo sysctl -p

七、完整示例:将 Swap 从 2G 扩展到 8G

# 1. 禁用旧 Swap
sudo swapoff -v /swapfile

# 2. 删除旧文件
sudo rm /swapfile

# 3. 创建 8G 新文件
sudo fallocate -l 8G /swapfile

# 4. 设置权限
sudo chmod 600 /swapfile

# 5. 格式化
sudo mkswap /swapfile

# 6. 启用
sudo swapon /swapfile

# 7. 验证
free -h
swapon --show

八、故障排查

# 检查 Swap 错误
sudo dmesg | grep -i swap

# 查看内存使用详情
cat /proc/meminfo

# 测试 Swap 性能
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1000000

总结建议

首选 Swap 文件方案:灵活性高,无需调整分区 云服务器用户:通常使用 Swap 文件方式 物理服务器:如有空闲分区,可使用分区方案 数据库服务器:谨慎设置 Swap,避免影响性能 容器环境:考虑使用 zram 替代传统 Swap

根据你的具体环境和需求选择合适的方法,操作前确保已备份重要数据。

相关推荐