找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4667

积分

0

好友

645

主题
发表于 5 天前 | 查看: 50| 回复: 0

调整 Linux 的 Swap 分区(交换分区)是系统运维中一项常见的任务,无论是为了应对临时的内存压力,还是为了优化长期的内存使用策略。本文将通过几种典型场景,详细介绍如何安全地调整、创建或删除 Swap 空间,并优化其使用行为。操作前请务必备份重要数据,尤其是在涉及磁盘分区时。

1. 调整现有 Swap 分区大小

直接调整一个已存在的 Swap 分区大小通常意味着需要删除并重新创建分区,这个过程存在风险,建议在物理机或虚拟机的维护模式(如 Rescue 模式)下进行。

首先,查看当前系统中的 Swap 信息:

swapon --show

或者

cat /proc/swaps

确认目标 Swap 分区(例如 /dev/sdb1)后,先将其停用:

swapoff /dev/sdXn

接下来,使用 fdiskparted 等工具删除旧分区,并在同一位置创建一个更大或更小的新分区。完成分区操作后,记录新分区的 UUID:

sudo blkid /dev/sdXn

然后,将该分区格式化为 Swap 格式并立即启用:

mkswap /dev/sdXn
swapon /dev/sdXn

最后,为了确保系统重启后配置依然生效,需要更新 /etc/fstab 文件,将其中对应 Swap 分区的条目修改为新的 UUID。

2. 使用 Swap 文件(更灵活的方案)

如果觉得操作分区风险较高,或者在云服务器等无法直接调整分区布局的环境中,使用 Swap 文件是一个更灵活、更安全的选择。

创建一个 4GB 大小的 Swap 文件(请根据你的磁盘空间和需求调整 count 值):

dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress

设置正确的文件权限,防止被非 root 用户读取:

chmod 600 /swapfile

将该文件格式化为 Swap 空间:

mkswap /swapfile

启用这个 Swap 文件:

swapon /swapfile

若想让配置永久生效,需要在 /etc/fstab 文件末尾添加一行:

/swapfile none swap sw 0 0

完成后,可以通过 free -hswapon --show 命令来验证 Swap 是否已成功添加并启用。

3. 删除 Swap 分区或文件

如果你决定不再需要某个 Swap 空间,可以按照以下步骤安全移除。

首先,停用目标 Swap:

swapoff /dev/sdXn   # 或 swapoff /swapfile

然后,编辑 /etc/fstab 文件,找到对应 Swap 分区或文件的行,将其删除或注释掉(在行首添加 #)。

如果需要彻底删除 Swap 分区并回收磁盘空间,还需使用 fdiskparted 工具删除该分区,并考虑将释放出的空间合并到相邻分区中。此操作会丢失该分区上的所有数据,务必谨慎。

4. 优化 Swap 使用倾向 (swappiness)

swappiness 值(范围 0-100)决定了内核使用 Swap 空间的积极程度。值越高,内核越倾向于使用 Swap;默认值通常是 60。对于希望减少 Swap 使用、优先使用物理内存的服务器,可以调低此值。

查看当前的 swappiness 设置:

cat /proc/sys/vm/swappiness

临时将值调整为 10(仅当前会话有效):

sudo sysctl vm.swappiness=10

若需永久生效,编辑 /etc/sysctl.conf 文件,添加或修改如下行:

vm.swappiness=10

保存后,执行 sudo sysctl -p 使配置立即生效。

关键注意事项

  • 操作环境:调整物理分区前,确保目标分区未被挂载,最好在维护模式下操作。
  • 云服务器限制:大多数云服务商不支持动态调整系统盘分区,因此强烈推荐使用 Swap 文件方案
  • 配置验证:修改 /etc/fstab 后,可以运行 sudo mount -a 来测试配置语法是否正确,避免因配置错误导致系统无法启动。
  • 性能权衡:Swap 本质上是磁盘空间,速度远慢于物理内存。过低的 swappiness 可能导致内存耗尽时进程被 OOM Killer 直接终止;过高则可能因频繁换入换出导致系统响应变慢。需要根据实际负载找到平衡点。

希望这篇指南能帮助你更好地管理 Linux 系统的 Swap 空间。如果你在系统调优过程中有其他经验或疑问,欢迎到 云栈社区运维 & 测试 板块与大家交流探讨。




上一篇:项目投资决策委员会完整管理办法V3.0:组织架构、核心职责与标准流程
下一篇:生产级日志架构设计:Filebeat+Redis+Logstash+Elasticsearch应对千万级并发
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-7 15:53 , Processed in 0.745831 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表