温馨提示×

怎么调整CentOS Swap容量

小樊
54
2026-08-18 09:40:45
栏目: 智能运维

下面分几种常见场景,说明 如何在 CentOS(7/8/Stream)中调整 Swap 容量。操作前建议先确认当前 Swap 情况。


一、先查看当前 Swap 状态

free -h
swapon --show
lsblk

二、调整 Swap 的常见方式

✅ 方式一:使用 Swap 文件(最常用、最安全)

适合:Swap 太小,想扩容;或没有多余分区

1️⃣ 关闭现有 Swap(如果是文件)

swapoff -a

⚠️ 如果提示 “swapoff failed: Cannot allocate memory”
说明内存不足,不能直接关闭,建议重启后再操作,或先加新 swap 再关旧的。


2️⃣ 创建新的 Swap 文件(例如 4G)

dd if=/dev/zero of=/swapfile bs=1M count=4096
# 或使用更快的方式
fallocate -l 4G /swapfile

设置权限:

chmod 600 /swapfile

3️⃣ 格式化为 Swap

mkswap /swapfile

4️⃣ 启用 Swap

swapon /swapfile

5️⃣ 写入 fstab(开机自动挂载)

echo '/swapfile swap swap defaults 0 0' >> /etc/fstab

✅ 验证:

free -h
swapon --show

✅ 方式二:调整已有 Swap 文件大小

适合:只想扩大或缩小 Swap 文件

1️⃣ 关闭 Swap

swapoff /swapfile

2️⃣ 调整大小(例如改为 8G)

rm -f /swapfile
fallocate -l 8G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

✅ 方式三:使用独立 Swap 分区(不推荐新手)

适合:服务器有空闲磁盘分区

1️⃣ 查看分区

lsblk
fdisk -l

2️⃣ 创建分区(如 /dev/sdb1)

fdisk /dev/sdb
# n → p → 回车 → 回车 → 回车 → t → 82 → w

3️⃣ 格式化为 Swap

mkswap /dev/sdb1

4️⃣ 启用

swapon /dev/sdb1

5️⃣ 写入 fstab

echo '/dev/sdb1 swap swap defaults 0 0' >> /etc/fstab

三、调整 Swap 使用策略(可选)

查看当前策略:

cat /proc/sys/vm/swappiness

临时修改(如 10):

sysctl vm.swappiness=10

永久生效:

echo 'vm.swappiness=10' >> /etc/sysctl.conf

值越小越倾向使用内存,越大越倾向使用 Swap


四、常见问题

❓ Swap 一定要吗?

  • 物理内存 ≥ 8G:可不用或少用
  • 内存小 / 有休眠需求:建议有 Swap

❓ Swap 文件 vs 分区?

对比 Swap 文件 Swap 分区
灵活 ✅ ❌
性能 接近 略好
推荐 ✅ ❌

五、推荐配置(经验值)

内存 Swap
≤ 2G 2× 内存
2–8G 等于内存
≥ 8G 4–8G

如果你愿意,可以告诉我:

  • CentOS 版本
  • 内存大小
  • 是 云服务器 / 虚拟机 / 物理机
  • Swap 是文件还是分区

我可以给你一套 最合适的具体命令方案。

0 踩