商城首页欢迎来到中国正版软件门户

您的位置:首页 >CentOS 7如何配置并开启Swap交换空间

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

  发布于2026-08-12 阅读(0)

扫一扫,手机访问

如果用fallocate创建swapfile时遇到“Operation not supported”,更稳妥的做法是改用dd命令,因为它对各种文件系统的兼容性更好。操作前先确认目标分区有足够可用空间,同时把文件权限设为600;接着执行mkswap和swapon完成启用,最后在/etc/fstab中写入正确配置,这样重启后也能持续生效。

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

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

遇到这个错误,说明当前文件系统(比如旧版 XFS 或某些 NFS 挂载)不支持 fallocate 的预分配机制。别硬扛,直接切回 dd —— 它兼容所有文件系统,只是慢一点。

  • dd if=/dev/zero of=/swapfile bs=1M count=1024 是最稳妥的 1GB 创建方式;countbs 相乘即为总大小,别写错单位(count=1G 是无效语法)
  • 创建前先 df -h 确认目标路径所在分区有足够连续空间;/swapfile 放根目录最稳妥,避免挂载点权限或 SELinux 干扰
  • 创建后立刻执行 chmod 600 /swapfile —— 权限不对会导致 mkswap 失败或系统拒绝启用

swapon 后 free -h 显示 Swap 仍为 0

这几乎一定是没真正激活成功。常见原因就三个:权限不对、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 驱动。漏掉这一行,等于白配。

  • /etc/fstab 追加这行:/swapfile swap swap defaults 0 0 —— 注意字段顺序不能错,第四个字段是 0(不是 1),第五个是 0(不是 1
  • 追加后别急着重启,先手动测试:swapoff -a && swapon -a,再看 swapon --show 是否恢复
  • 如果 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%)才开始换出 —— 这才是合理行为,不是故障

实际配置中,最容易被跳过的环节是 swapon --show 验证和 swapon -a 测试。很多人改完 /etc/fstab 就以为万事大吉,结果重启发现 swap 没挂上,问题全卡在那一行配置的空格或路径拼写上。

本文转载于:https://www.php.cn/faq/2961793.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注