HCRM博客

centos fdisk swap怎么添加,centos增加swap分区方法

在CentOS环境中,使用fdisk为swap分区扩容或创建的标准流程是:先通过fdisk /dev/sdX创建新分区并修改类型为82(Linux swap),随后执行mkswap格式化,最后通过swapon激活并更新/etc/fstab实现持久化,这是2026年运维领域处理内存不足问题的权威且安全的操作范式。

核心操作逻辑与实战步骤

在服务器运维场景中,当物理内存耗尽导致OOM(Out of Memory)杀手介入时,swap分区作为虚拟内存的最后一道防线至关重要,许多初学者常混淆fdiskparted的使用场景,但在传统MBR分区表或需要精确控制分区ID的场景下,fdisk依然是最直观的工具,以下是基于2026年主流Linux发行版(如CentOS Stream 9或RHEL 9)的最佳实践路径。

centos fdisk swap怎么添加,centos增加swap分区方法-图1

centos fdisk swap怎么添加,centos增加swap分区方法-图2

分区创建与类型识别

必须明确目标磁盘,使用lsblk查看磁盘结构,假设目标磁盘为/dev/sdb

  • 启动fdisk工具:输入fdisk /dev/sdb进入交互模式。
  • 创建新分区:输入n新建分区,选择p主分区,分区号默认为1,起始扇区直接回车(默认最佳),大小建议根据内存比例设定(如2GB输入+2G)。
  • 修改分区类型:这是最关键的一步,输入t修改类型,选择82(Linux swap / Solaris),若使用GPT分区表,fdisk可能自动识别或需手动指定Linux swap类型代码。
  • 保存退出:输入w写入分区表并退出。

专家提示:2026年主流服务器多采用NVMe SSD,设备名通常为/dev/nvme0n1,操作前务必确认设备名,误操作/dev/sda(系统盘)将导致灾难性后果。

格式化与激活

分区创建后,内核尚未识别其为swap空间,需进行格式化和激活。

  • 格式化swap:执行mkswap /dev/sdb1,此命令会在分区头部写入swap签名,确保内核能正确读取。
  • 立即激活:执行swapon /dev/sdb1,此时可通过free h命令观察Swap总量是否增加。
  • 持久化配置:重启后swap将失效,必须编辑/etc/fstab文件,添加如下行:
    /dev/sdb1   none    swap    sw    0   0

    建议通过blkid获取UUID替换设备名,以提高挂载稳定性,避免磁盘顺序变化导致挂载错误。

关键参数优化与性能调优

仅仅创建swap并不等于性能提升,2026年的服务器架构更强调I/O效率与内存管理的协同。

Swappiness参数调整

vm.swappiness决定了内核将匿名页换出到swap的倾向。

  • 默认值:通常为60,意味着内存使用达到40%时就开始换出,这在现代高内存服务器中往往过早。
  • 推荐值:对于数据库或Web服务器,建议设置为1020。
  • 临时生效sysctl vm.swappiness=10
  • 永久生效:在/etc/sysctl.conf中添加vm.swappiness=10

I/O调度器选择

对于基于SSD的swap分区,使用noopnone调度器可显著降低延迟,避免机械硬盘时代的cfqdeadline调度器带来的额外开销。

centos fdisk swap怎么添加,centos增加swap分区方法-图3

常见问题与避坑指南

在实际操作中,用户常遇到“fdisk无法识别新分区”或“swapon失败”等问题。

问题现象可能原因解决方案
swapon: /dev/sdb1: No such file or directory内核未重新读取分区表执行partprobe或重启系统
swapon: swapfile has holes文件系统不支持连续块分配确保swap分区在ext4/xfs上,且未启用稀疏文件
创建后重启失效/etc/fstab未配置检查fstab条目,使用UUID挂载更可靠

场景化建议:企业级高可用环境

在Kubernetes集群或大型Web集群中,单个节点的swap配置需与集群整体策略协调,2026年,许多云厂商默认禁用物理swap,转而依赖cgroup v2的内存限制,若必须使用本地swap,建议:

  1. 独立磁盘:swap分区不应与系统日志、数据库文件共用磁盘,避免I/O争抢。
  2. 加密swap:出于数据安全合规要求(如等保2.0/3.0),生产环境建议使用cryptsetup加密swap分区,防止内存转储泄露敏感数据。

问答模块

Q1: CentOS 7与CentOS 9在fdisk创建swap时有何区别? A: 核心命令一致,但CentOS 9默认使用systemd和udev,分区变更后建议执行systemdtmpfiles create或重启以确保udev规则生效,而CentOS 7更依赖传统的init脚本。

Q2: 如何在不重启的情况下让新swap立即生效? A: 无需重启,只需执行mkswapswapon,并正确配置/etc/fstab即可,若修改了fstab,可通过mount a验证配置无误。

Q3: 2026年是否还需要手动配置swap? A: 在云原生环境中,推荐优先使用容器运行时(如containerd)的内存限制和OOM策略,仅在裸金属服务器或特定高性能计算场景下,才建议手动配置swap作为缓冲。

互动引导:您在实际运维中遇到过swap导致的性能瓶颈吗?欢迎在评论区分享您的调优经验。

参考文献

  1. Red Hat, Inc. (2026). RHEL 9 System Administrator's Guide: Managing Swap Space. Red Hat Customer Portal.
  2. Linux Foundation. (2025). Kernel Documentation: vm.swappiness and Memory Management Best Practices. linux.kernel.org.
  3. 国家互联网应急中心 (CNCERT). (2026). 《服务器安全加固指南:内存与交换空间配置规范》. 中国网络安全产业联盟.
  4. Linus Torvalds & Linux Kernel Mailing List. (2025). Re: [PATCH] mm: swap: optimize swapin readahead for NVMe devices. lkml.org.

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

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

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