1. 首页 > 技术教程 > 正文

低配 VPS 救星:Linux Swap 分区创建与内核优化

低配 VPS 救星:Linux Swap 分区创建与内核优化

你的低配 VPS 跑个 WordPress 就开始卡,MySQL 动不动就 OOM 被 kill,或者 SSH 连上去敲个命令都要卡半天?别急着加钱升级配置,先看看内存是不是被吃光了。**主机选** 的这篇 Linux 教程,专治低配 VPS 内存不足的硬伤,手把手教你创建 Swap 分区并优化内核参数,让你的小水管 VPS 也能稳定跑业务。

低配 VPS 救星:Linux Swap 分区创建与内核优化的图片

为什么低配 VPS 必须配 Swap?

物理内存不够时,系统会直接杀进程(OOM Killer)。Swap 就是磁盘上的一块空间,充当虚拟内存。当物理内存吃紧,系统会把不活跃的内存数据换到 Swap,腾出空间给活跃进程。对于 512MB 或 1GB 内存的低配 VPS,没有 Swap 等于在走钢丝。

Swap 分区的适用场景

• 跑 WordPress + MySQL + Nginx 的轻量网站。

• 偶尔编译小软件,内存临时不够用。

• 避免 MySQL 或 PHP-FPM 因内存不足被强制杀掉。

Swap 的坑:别滥用

Swap 不是物理内存,速度慢很多。如果 VPS 内存长期 100% 占用且 Swap 也吃满,那该升级配置了,别死扛。

低配 VPS 创建 Swap 分区实战

这里我们不搞分区表重分区那套高风险操作,直接用文件创建 Swap,安全、灵活、可随时调整。适合所有 Linux 发行版(Ubuntu、Debian、CentOS 都行)。

第一步:检查当前 Swap 状态

先看看系统有没有 Swap:

swapon –show

如果输出为空,说明没有 Swap

free -h

关注 “Swap” 那一行的 total 是否为 0

如果已经存在 Swap,跳过创建步骤。

第二步:创建 Swap 文件

建议 1GB 内存的 VPS 配 1GB Swap,512MB 的配 1-2GB。别超过磁盘剩余空间的一半,否则磁盘 IO 会炸。

fallocate -l 1G /swapfile

创建一个 1GB 的空文件,路径是 /swapfile

如果 fallocate 不支持,用 dd if=/dev/zero of=/swapfile bs=1M count=1024

ls -lh /swapfile

确认文件大小是 1.0G

第三步:设置权限并启用 Swap

Swap 文件权限必须严格,否则系统会警告甚至拒绝启用。

chmod 600 /swapfile

只有 root 能读写,防止普通用户篡改

mkswap /swapfile

格式化为 swap 格式

swapon /swapfile

立即启用

swapon –show

确认 /swapfile 已激活,类型为 file

第四步:设置开机自动挂载

不设这一步,重启后 Swap 就丢了。

echo ‘/swapfile none swap sw 0 0’ | tee -a /etc/fstab

写入 fstab,重启自动挂载

cat /etc/fstab | grep swap

确认写入成功,别写错了路径

内核参数优化:让 Swap 不拖后腿

Swap 启用后,默认内核参数可能让系统过早开始换页,导致性能下降。我们需要调整 `swappiness` 和 `vfs_cache_pressure`。

调整 swappiness:控制换出倾向

`swappiness` 值范围 0-100,默认 60。值越大,系统越积极使用 Swap。低配 VPS 建议调低,优先用物理内存。

sysctl vm.swappiness=10

临时生效,物理内存还剩 90% 时才开始用 Swap

别设成 0,极端情况下可能导致 OOM

echo ‘vm.swappiness=10’ >> /etc/sysctl.conf

写入配置文件,永久生效

调整 vfs_cache_pressure:减少缓存回收

这个参数控制内核回收 dentry 和 inode 缓存的倾向。调低可以保留更多文件系统缓存,减少磁盘 IO。

sysctl vm.vfs_cache_pressure=50

默认 100,调低到 50 表示内核回收缓存的意愿降低一半

echo ‘vm.vfs_cache_pressure=50’ >> /etc/sysctl.conf

写入配置文件

生效并验证

sysctl -p

重新加载 /etc/sysctl.conf 里的所有参数,无需重启

sysctl vm.swappiness
sysctl vm.vfs_cache_pressure

确认参数已生效

老鸟叮嘱:Swap 不是银弹

**别在 SSD 上疯狂读写 Swap。** 低配 VPS 的磁盘通常是 SSD,Swap 频繁换入换出会加速磁盘磨损,同时拖慢整个系统。如果你的 VPS 长期 `swapon –show` 显示 Swap 使用率超过 50%,并且 `free -h` 显示物理内存几乎占满,说明你的业务已经超载。这时候该做的不是优化 Swap,而是升级内存或优化代码(比如给 MySQL 开慢查询日志,查查是不是有慢 SQL)。

另外,**不要用 Swap 文件路径包含空格或特殊字符**,否则 `swapon` 会报错。保险起见,路径固定用 `/swapfile`。

FAQ

**Q: Linux SSH 连不上怎么办?**
A: 先检查 VPS 控制台的 VNC 或面板是否正常。如果连 VNC 都进不去,可能是内存耗尽导致系统卡死。重启 VPS 后,优先按本文创建 Swap,然后检查防火墙是否放行了 SSH 端口(默认 22)。

**Q: VPS 防火墙端口放行后还是访问不了是什么原因?**
A: 检查系统内部防火墙(如 iptables / ufw / firewalld)是否也拦截了端口。另外,如果内存不足,Nginx 或 MySQL 可能已被 OOM Killer 杀掉,重启服务试试:`systemctl restart nginx`。Swap 能减少这种被杀的概率。

**Q: Linux 小白可以直接用 root 账号操作吗?**
A: 可以,但风险极高。建议创建一个普通用户并赋予 sudo 权限。如果必须用 root,务必开启 SSH 密钥登录并禁用密码登录。本文所有命令都需要 root 权限,临时用 `sudo -i` 切换到 root 也行。

**Q: BBR 开启后为什么速度没有明显提升?**
A: BBR 优化的是网络拥塞控制,对带宽跑满的场景有效。如果你的 VPS 本身内存不足,系统忙于换页,CPU 和磁盘 IO 成了瓶颈,BBR 也救不了。先按本文解决内存问题,再谈 BBR。

**Q: Swap 文件可以放在其他分区吗?**
A: 可以,但建议放在根分区的 SSD 上。不要放在 NFS、CIFS 等网络挂载点或 USB 盘上,速度太慢且不稳定。如果根分区空间不够,可以挂载一块额外的数据盘,把 Swap 文件放在那里。

**Q: 如何删除 Swap?**
A: 先 `swapoff /swapfile`,然后删除 `/swapfile` 文件,最后从 `/etc/fstab` 中移除那行配置。重启后确认 `swapon –show` 无输出。

转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9414.html 商家投稿邮箱:zhujixuanblog@qq.com