能补救——不用重装或加硬盘,可用文件或空闲分区建swap:文件方式(如dd创建/swapfile)灵活易删,适合虚拟机;分区方式性能更优,需未分配空间;均需写入fstab并设swappiness=10优化。

系统安装时没划 Swap,完全能补救——不用重装,也不用加硬盘,两种主流方式任选:用文件建 Swap(最常用),或用空闲分区建 Swap(性能更好)。关键看手头有没有未分配磁盘空间。
用文件方式快速添加 Swap(推荐大多数场景)
适合虚拟机、云服务器、磁盘已满但还有剩余空间的情况。操作简单、灵活、可随时增删。
- 用 dd 创建交换文件,比如加 2GB: sudo dd if=/dev/zero of=/swapfile bs=1G count=2
- 设严格权限防安全风险: sudo chmod 600 /swapfile
- 格式化为 swap 类型: sudo mkswap /swapfile
- 立即启用: sudo swapon /swapfile
- 验证是否生效: free -h 或 swapon --show
用空闲分区创建 Swap(适合物理机或有未分配空间)
性能略优于文件方式,尤其在高 I/O 场景下更稳定。前提是磁盘上有未分区空间或闲置分区。
- 查可用磁盘和分区: sudo fdisk -l(注意避开已挂载或存数据的分区)
- 对目标空闲分区(如 /dev/sdb1)格式化: sudo mkswap /dev/sdb1
- 启用它: sudo swapon /dev/sdb1
- 确认状态: swapon --show | grep sdb1
让 Swap 开机自动启用(必须做,否则重启就失效)
临时启用只管当前会话,写进 /etc/fstab 才算真正完成配置。
- 获取文件或分区的唯一标识(推荐用 UUID): sudo blkid /swapfile 或 sudo blkid /dev/sdb1
- 编辑 fstab: sudo nano /etc/fstab
- 末尾追加一行(文件方式): /swapfile none swap sw 0 0
- 或(分区方式,带 UUID): UUID=xxxx-xxxx-xxxx-xxxx none swap sw 0 0
- 测试语法是否正确: sudo swapon --verify
优化 Swap 行为(提升响应与稳定性)
默认 swappiness 值偏高(Ubuntu 60,CentOS 0),多数服务建议调低,减少无谓换出。
- 临时调整(重启失效): sudo sysctl vm.swappiness=10
- 永久生效: echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
- 多个 Swap 区域可设优先级,数值越高越先使用: sudo swapon --priority 20 /swapfile











