HCRM博客

释放CentOS中交换分区的操作指南

释放CentOS交换分区空间:安全操作指南与深入理解

核心原理:交换分区的作用与释放本质

当物理内存(RAM)耗尽时,Linux内核将不活跃的内存页移动到交换分区(Swap Partition)或交换文件(Swap File),从而腾出RAM空间供活跃进程使用,这个过程被称为“换出”(Swapping Out),交换分区充当了系统内存的扩展,防止程序因内存不足而崩溃。

释放CentOS中交换分区的操作指南-图1

所谓“释放”交换分区,主要包含两种操作:

  1. 临时清空:将当前交换分区中的数据强制移回物理内存,使交换分区暂时变为空闲状态(swapoff -a + swapon -a)。
  2. 永久移除:从系统配置中彻底禁用并移除交换分区(需修改/etc/fstab并重启)。

重要警示:操作前的关键考量

  • 内存瓶颈是根源:频繁使用交换分区根本原因在于物理内存不足,释放操作仅为临时手段或配置调整,无法替代增加物理内存
  • 性能风险:强制将大量数据从交换分区移回内存时,若物理内存剩余空间不足,可能导致:
    • 系统响应急剧下降(严重卡顿)
    • 触发OOM Killer强制终止进程(可能影响关键服务)
  • 操作时机务必确保当前系统物理内存有充足空闲时执行释放操作,执行前检查可用内存(free -htop)。

操作指南:安全释放交换分区

临时清空交换分区(推荐日常维护)

此方法安全系数较高,适合在系统负载较低、内存较空闲时执行,例如夜间维护窗口。

  1. 禁用所有交换空间:

    释放CentOS中交换分区的操作指南-图2
    sudo swapoff -a
    • 执行此命令后,系统开始将交换分区中的数据尽力移回物理内存。这是最可能引起卡顿的阶段,内存不足时极其危险!
    • 使用 free -htop 观察 Swap 使用量逐渐降为 0,Memused 增加,free 减少。
  2. 重新启用交换空间:

    sudo swapon -a

    此时交换分区已被清空,重新激活后处于待命状态,物理内存中不活跃的页面会在需要时再次被换出。

永久移除交换分区(谨慎操作)

仅在你完全确定系统不再需要交换空间(如物理内存极大且永不耗尽),或需要重新规划磁盘分区时使用。

  1. 备份关键配置文件(必须步骤):

    sudo cp /etc/fstab /etc/fstab.bak
  2. 临时禁用交换(同方法一第一步):

    释放CentOS中交换分区的操作指南-图3
    sudo swapoff -a
  3. 删除 /etc/fstab 中的交换条目:

    • 使用文本编辑器打开文件:
      sudo vi /etc/fstab
    • 找到包含 swap 关键字的行,通常类似:
      /dev/mapper/centos-swap swap                    swap    defaults        0 0
      或
      UUID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx swap swap defaults 0 0
    • 删除这一整行。 务必仔细核对,仅删除正确的swap行。
    • 保存并退出编辑器。
  4. 移除交换分区标志(可选但推荐):

    • 查看当前交换分区设备名(执行 swapon -slsblk -f,此时应无活跃swap)。
    • 假设设备为 /dev/sda2,使用 partedfdisk 将其类型从 Linux swap 改为 Linux filesystem (如 83)。此操作有风险,非必要可跳过,确保你理解磁盘分区操作。
  5. 重启系统:

    sudo reboot
    • 重启后,系统将不再自动激活该交换分区,使用 free -h 确认 Swap 行完全为0。

深入优化:调整交换使用倾向性

即使保留交换分区,也可以通过调整内核参数 vm.swappiness,控制内核使用交换空间的积极程度。

  • 查看当前值:

    cat /proc/sys/vm/swappiness

    默认值通常为60(范围0-100),值越高,内核越倾向于使用交换分区。

  • 临时调整(重启失效):

    sudo sysctl vm.swappiness=10  # 设置为较低值,如10,表示物理内存用到90%以上才考虑swap
  • 永久调整: 编辑 /etc/sysctl.conf 文件:

    sudo vi /etc/sysctl.conf

    在文件末尾添加一行:

    vm.swappiness=10

    保存退出,然后应用:

    sudo sysctl -p

专家建议:

  1. 内存监控先行:养成使用 free -htopvmstat 1 监控内存和交换使用情况的习惯,发现 Swap 持续较高使用率,是物理内存不足的明确信号。
  2. 临时释放需择机:只在内存空闲充裕时进行 swapoff -a && swapon -a,避免引发性能雪崩或进程崩溃,生产环境务必在维护窗口操作。
  3. 永久移除需论证:除非物理内存远超应用峰值需求(并预留足够缓冲),且经过长期稳定性测试,否则不建议完全移除交换分区,它是一道重要的安全防线。
  4. 交换文件替代方案:如果磁盘分区空间紧张,使用交换文件(Swap File)是比分区更灵活的选择,创建和调整大小都相对方便。
  5. 优先解决根本问题:分析内存消耗大户(topps aux 排序内存),考虑优化应用配置、升级内存或分布式部署,释放交换空间如同退烧药,找到感染源才是关键。

合理管理交换空间是CentOS系统维护的重要部分,理解其原理,根据实际物理内存状况和应用负载做出明智选择,在保障系统安全稳定运行的前提下进行必要操作,方能最大化服务器效能,如同定期整理办公桌,释放交换分区应在恰当的时机、以正确的方式执行,让系统运行保持清爽高效。

关键点说明swapoff -a 命令执行时,若系统物理内存不足以容纳交换分区中的数据,可能导致两种后果:1) 部分数据无法移回内存,系统可能挂起或极度卡顿;2) 内核的 OOM Killer 被触发,强制终止消耗内存最多的进程以回收空间,执行前务必通过 free -h 确认 available 内存远大于 swap used 值,或在绝对内存充足时操作。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/35368.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~