在CentOS环境中,使用fdisk为swap分区扩容或创建的标准流程是:先通过fdisk /dev/sdX创建新分区并修改类型为82(Linux swap),随后执行mkswap格式化,最后通过swapon激活并更新/etc/fstab实现持久化,这是2026年运维领域处理内存不足问题的权威且安全的操作范式。
核心操作逻辑与实战步骤
在服务器运维场景中,当物理内存耗尽导致OOM(Out of Memory)杀手介入时,swap分区作为虚拟内存的最后一道防线至关重要,许多初学者常混淆fdisk与parted的使用场景,但在传统MBR分区表或需要精确控制分区ID的场景下,fdisk依然是最直观的工具,以下是基于2026年主流Linux发行版(如CentOS Stream 9或RHEL 9)的最佳实践路径。


分区创建与类型识别
必须明确目标磁盘,使用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分区,使用noop或none调度器可显著降低延迟,避免机械硬盘时代的cfq或deadline调度器带来的额外开销。

常见问题与避坑指南
在实际操作中,用户常遇到“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,建议:
- 独立磁盘:swap分区不应与系统日志、数据库文件共用磁盘,避免I/O争抢。
- 加密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: 无需重启,只需执行mkswap和swapon,并正确配置/etc/fstab即可,若修改了fstab,可通过mount a验证配置无误。
Q3: 2026年是否还需要手动配置swap? A: 在云原生环境中,推荐优先使用容器运行时(如containerd)的内存限制和OOM策略,仅在裸金属服务器或特定高性能计算场景下,才建议手动配置swap作为缓冲。
互动引导:您在实际运维中遇到过swap导致的性能瓶颈吗?欢迎在评论区分享您的调优经验。
参考文献
- Red Hat, Inc. (2026). RHEL 9 System Administrator's Guide: Managing Swap Space. Red Hat Customer Portal.
- Linux Foundation. (2025). Kernel Documentation: vm.swappiness and Memory Management Best Practices. linux.kernel.org.
- 国家互联网应急中心 (CNCERT). (2026). 《服务器安全加固指南:内存与交换空间配置规范》. 中国网络安全产业联盟.
- Linus Torvalds & Linux Kernel Mailing List. (2025). Re: [PATCH] mm: swap: optimize swapin readahead for NVMe devices. lkml.org.

