游乐游手机版
首页/系统平台/文章详情

CentOS 7配置并开启Swap交换空间教程

时间:2026-08-18 07:51
如果在使用fallocate创建swapfile时遇到“Operation not supported”错误,更可靠的处理方式是改用dd命令,因为它对不同文件系统的兼容性通常更好。操作前要先确认目标分区具备足够的可用空间,并将交换文件权限设置为600;随后执行mkswap和swapon完成启用,最后

如果在使用fallocate创建swapfile时遇到“Operation not supported”错误,更可靠的处理方式是改用dd命令,因为它对不同文件系统的兼容性通常更好。操作前要先确认目标分区具备足够的可用空间,并将交换文件权限设置为600;随后执行mkswap和swapon完成启用,最后在/etc/fstab中写入正确配置,这样CentOS 7重启后Swap交换空间也能自动生效。

CentOS 7如何配置并开启Swap交换空间

swapfile 创建失败:fallocate 报错“Operation not supported”

出现这个报错,通常说明当前文件系统(例如旧版本 XFS 或某些 NFS 挂载环境)不支持 fallocate 的预分配机制。此时不建议反复尝试,直接改用 dd 更稳妥——它对各类文件系统的适配性更强,只是执行速度会稍慢一些。

  • dd if=/dev/zero of=/swapfile bs=1M count=1024 是创建 1GB Swap 文件最常见也最稳定的方法;其中 countbs 相乘就是总容量,务必注意单位写法,像 count=1G 这样的写法是无效的
  • 创建之前先执行 df -h,确认目标路径所在分区有足够可用空间;通常将 /swapfile 放在根目录更省心,可减少挂载点权限或 SELinux 带来的影响
  • 创建完成后立即执行 chmod 600 /swapfile —— 如果权限设置不正确,可能导致 mkswap 失败,或者系统拒绝启用该 Swap 文件

swapon 后 free -h 显示 Swap 仍为 0

这种情况基本可以判断为 Swap 没有真正启用成功。常见原因通常只有三类:文件权限不正确、mkswap 没有执行、或者交换文件路径填写错误。

  • 先检查 mkswap /swapfile 是否成功输出 “Setting up swapspace version 1…”;如果这一步失败,虽然不一定出现明显报错,但后续执行 swapon 基本都会无效
  • 运行 swapon /swapfile 后,建议马上执行 swapon --show 进行核实——它比 free -h 更直观,也更适合判断当前已启用的 swap 设备或文件
  • 如果系统提示 “Permission denied”,请重新检查 ls -l /swapfile 的结果,确保权限显示为 -rw------- 1 root root

重启后 Swap 自动失效

在 CentOS 7 中,Swap 文件默认不会在系统启动时自动加载,必须依赖 /etc/fstab 配置来完成挂载。如果漏掉这一项,即使当前手动启用了 Swap,重启之后也会失效。

  • /etc/fstab 追加这一行:/swapfile swap swap defaults 0 0 —— 注意字段顺序必须正确,最后两个字段都应为 0,不要误写成 1
  • 写入后不要急着直接重启,建议先手动测试:swapoff -a && swapon -a,然后再用 swapon --show 确认 Swap 是否能够正常恢复
  • 如果执行 swapon -a 时出现报错,大多数情况下是 /etc/fstab 中路径写错、交换文件已被删除,或者文件权限又被改回了 644

Swap 一直不用?检查 vm.swappiness 值

默认的 60 对很多云服务器场景来说偏激进,但如果直接设置为 0,又可能导致系统在内存几乎耗尽时才开始使用 Swap,进而更容易触发 OOM Kill。对于生产环境,通常建议将其调整到 1020 之间。

  • 临时生效可执行:sysctl vm.swappiness=10;验证方式:cat /proc/sys/vm/swappiness
  • 如需永久生效,可在 /etc/sysctl.conf 文件末尾增加一行 vm.swappiness=10,然后执行 sysctl -p
  • 将该值调低后,Swap 不会“失效”或“消失”,而是会在内存占用达到较高水平(例如 90%)后才逐步参与换出,这属于更合理的 Linux 内存管理策略,并非系统故障

在实际进行 CentOS 7 Swap 配置时,最容易被忽略的步骤往往就是 swapon --show 验证以及 swapon -a 测试。很多人修改完 /etc/fstab 后就认为配置已经完成,结果系统重启后才发现 swap 没有成功挂载,问题往往就出在那一行配置的空格格式、字段顺序或路径拼写错误上。

来源:https://www.php.cn/faq/2961793.html
上一篇CentOS 7卸载指定软件包的方法与命令 下一篇Mac触控板点击力度感应阈值怎么设置调整
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Linux如何查找7天前修改过的文件
系统平台 · 2026-08-18

Linux如何查找7天前修改过的文件

-mtime +7 这个参数在 Linux 文件查找场景中经常被误解。它真正匹配的是修改时间超过 7 个完整 24 小时周期的文件,也就是 8 天及以上的文件。换句话说,它会筛选出 2026-06-30 及更早修改的文件,而不是很多人理解的“7天前文件”。由于 find 命令的时间计算采用向下取整方

Linux如何查看共享内存大小及使用情况
系统平台 · 2026-08-18

Linux如何查看共享内存大小及使用情况

很多人会把 free 命令中的 shared 字段误认为是 Linux IPC 共享内存大小,其实这是一个非常常见的理解偏差。这个字段真正反映的,是 tmpfs 挂载点(例如 dev shm)所占用的内存情况,并不包含通过 ipcs -m 查看的 System V 共享内存段。那么,Linux 怎

Linux查看磁盘使用分布的常用方法与命令
系统平台 · 2026-08-18

Linux查看磁盘使用分布的常用方法与命令

ncdu 是一款交互式磁盘空间分析工具,能够逐层下钻定位占用空间较大的目录,支持键盘导航、实时排序以及删除确认。它底层基于 du 实现,但在实际排查磁盘占用时大幅简化了操作流程,非常适合 Linux 磁盘使用分析。想直接查看目录级别的磁盘使用分布,就别只盯着 df 的总容量输出——它只能告诉你“磁盘

Linux系统序列号怎么查看及查询方法
系统平台 · 2026-08-18

Linux系统序列号怎么查看及查询方法

在 Linux 中查看物理服务器序列号,最快捷的方法通常是直接读取 sys class dmi id product_serial。普通用户一般无需 root 权限;如果返回为空,通常说明 BIOS 固件没有填写该字段;如果出现报错,则多半与内核限制或 SELinux 安全策略有关。直接读 sy

苹果电脑录屏帧率怎么设置fps与清晰度
系统平台 · 2026-08-18

苹果电脑录屏帧率怎么设置fps与清晰度

苹果电脑自带的录屏工具帧率默认锁定为 30fps,且系统本身不支持直接修改。如果你想在 Mac 录屏时自定义帧率,需要借助 OBS Studio(可在“输出→录制”中设置)或优加蛙这类第三方录屏软件(可在“视频设置”中拖动滑块调整)。苹果电脑录屏时如果想调节画面流畅度,核心就在于设置帧率(FPS)。