售前咨询400-838-0503

云服务器如何启用swap分区?

发布:2025-03-28 20:14

在云服务器上启用 Swap 分区(交换空间)可以在内存不足时提供虚拟内存支持,防止进程因 OOM(Out of Memory)被终止。以下是启用 Swap 分区的详细步骤:


方法 1:创建 Swap 文件(推荐)

适用于大多数场景,无需额外磁盘分区。

1. 检查当前 Swap 空间

bash
复制
free -h
sudo swapon --show

如果输出中 Swap 行全部为 0,说明未启用。

2. 创建 Swap 文件

bash
复制
# 分配一个 4GB 的 Swap 文件(根据需求调整大小)
sudo fallocate -l 4G /swapfile

# 如果 fallocate 不可用,可以用 dd(速度较慢)
# sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

3. 设置权限

bash
复制
sudo chmod 600 /swapfile

4. 格式化为 Swap 并启用

bash
复制
sudo mkswap /swapfile
sudo swapon /swapfile

5. 永久生效

编辑 /etc/fstab,添加以下行:

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

6. 优化 Swap 配置(可选)

调整 swappiness(默认值通常为 60,范围 0-100):

bash
复制
# 临时调整
sudo sysctl vm.swappiness=10

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

方法 2:使用磁盘分区作为 Swap

如果已有未使用的磁盘分区(如 /dev/sdb1),可以格式化为 Swap:

1. 格式化分区为 Swap

bash
复制
sudo mkswap /dev/sdb1

2. 启用并永久配置

bash
复制
sudo swapon /dev/sdb1
echo '/dev/sdb1 none swap sw 0 0' | sudo tee -a /etc/fstab

验证 Swap 是否生效

bash
复制
free -h
sudo swapon --show

注意事项

  1. 性能影响:Swap 基于磁盘,速度远低于物理内存,仅作为应急用途。

  2. 云服务器限制:部分云厂商(如 AWS 某些实例类型)可能默认禁用 Swap,需手动启用。

  3. 大小建议

    • 内存 < 2GB:Swap 建议为内存的 2 倍。

    • 内存 > 4GB:Swap 建议为 4GB~8GB。

  4. 删除 Swap 文件

    bash
    复制
    sudo swapoff /swapfile
    sudo rm /swapfile
    # 最后删除 /etc/fstab 中的对应行

通过上述步骤,你可以为云服务器快速启用 Swap 空间。根据实际需求调整大小和配置即可。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单