解决云服务器内存不足:2 分钟搞定 Ubuntu swap 交换区配置(新手友好版)

前言:

作为一个刚接触云服务器的开发者,最近被「远程连接卡顿」折磨到崩溃 ------Xshell 敲命令半天没反应,VS Code 远程编辑代码一直加载,排查了半天发现是云服务器 2GB 内存不够用

查了资料才知道,给服务器加个 swap 交换区(相当于 "虚拟内存")能缓解这个问题,亲测有效!今天把从 "为什么要开 swap" 到 "全程操作流程" 整理成超详细教程,新手跟着做就能搞定。

一、为什么要给云服务器开 swap?

云服务器的物理内存(比如我的 2GB)很容易被占满:

  • 跑个数据库、后端程序,再开远程连接工具,内存直接吃满;
  • 内存不足时,系统会强制杀死进程,或者变得异常卡顿(这就是我之前远程连接卡的原因)。

swap 交换区是硬盘模拟的 "虚拟内存",能临时存放下物理内存装不下的数据,让服务器不会因为内存不够直接崩掉,远程连接的流畅度也会提升。

二、Ubuntu 系统 swap 交换区配置全流程(2 分钟搞定)

适用系统:Ubuntu 全版本(我的是云服务器 Ubuntu VM-8-2)

准备工作:用 Xshell/VS Code 远程连接云服务器,直接复制命令执行即可。

步骤 1:先检查当前是否有 swap

执行命令看系统有没有自带 swap(新手不用理解,直接跑):

hash 复制代码
free -h

如果Swap行的total显示0B,说明没有 swap,继续下一步。

步骤 2:创建 2GB swap 交换文件

推荐 swap 大小 = 物理内存的 1~2 倍(我 2GB 内存,所以设 2GB):

hash 复制代码
# 方式1(优先用,速度快)
sudo fallocate -l 2G /swapfile

# 方式2(当方式1报错时用,通用,稍慢)
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

步骤 3:设置权限(必须做,防安全风险)

让只有 root 能访问 swap 文件,避免被篡改:

hash 复制代码
sudo chmod 600 /swapfile

步骤 4:格式化并启用 swap

hash 复制代码
# 格式化swap文件
sudo mkswap /swapfile

# 启用swap
sudo swapon /swapfile

执行完再跑free -h,看到Swaptotal显示 2GB,说明启用成功!

步骤 5:设置开机自动启用(避免重启失效)

编辑系统配置文件,让 swap 重启后也能生效:

hash 复制代码
# 用vim打开配置文件
sudo vim /etc/fstab

i进入编辑模式,在文件最后一行粘贴:

hash 复制代码
/swapfile none swap sw 0 0

Esc,输入:wq回车保存退出。

步骤 6:验证最终效果

重启服务器后,再执行free -h

hash 复制代码
sudo reboot

重启后Swap行还是显示 2GB,就彻底配置完成了!

三、效果实测

配置前:开 Xshell+VS Code 远程连接,服务器内存占满,操作延迟 10 秒 +;

配置后:同样的操作,响应速度恢复正常,代码编辑、命令执行都不卡了。

注意事项

  1. swap 是 "缓兵之计":如果经常跑大型程序,还是建议升级云服务器内存;
  2. 别乱删 swap 文件:配置好后不要手动删除/swapfile,会导致系统出错;
  3. 网络问题单独解决:如果是热点网络波动导致的卡顿,换宽带会更有效。

跑大型程序,还是建议升级云服务器内存;

  1. 别乱删 swap 文件:配置好后不要手动删除/swapfile,会导致系统出错;

  2. 网络问题单独解决:如果是热点网络波动导致的卡顿,换宽带会更有效。

希望这个教程能帮到和我一样的新手,有问题欢迎在评论区交流~

相关推荐
仙柒4152 小时前
Docker原理
运维·docker·容器
茉莉玫瑰花茶6 小时前
工作流的常见模式 [ 1 ]
java·服务器·前端
米高梅狮子6 小时前
第2章 docker容器
运维·docker·云原生·容器·架构·kubernetes·自动化
闵孚龙7 小时前
Claude Code Ultraplan 远程多代理规划全解析:AI Agent、CCR远程容器、异步规划、状态机、计划传送与企业级自动化治理
运维·人工智能·自动化
南京码讯光电技术有限公司8 小时前
工业无线AP选型指南:从WiFi 5到WiFi 6+5G CPE,如何构建全覆盖、零漫游、高可靠的智能工厂网络?
服务器·网络·5g
二宝哥9 小时前
Linux虚拟机网络配置
linux·运维·服务器
卧室小白9 小时前
docker网络与服务编排与集群
运维·docker·容器
陳10309 小时前
Linux:进程间通信 和 简单进程池
linux·运维·服务器
数字化顾问9 小时前
(122页PPT)数字化架构的演进和治理(附下载方式)
java·运维·架构
jimy19 小时前
改.bashrc,直观地判断本地repo是否有改动
linux·服务器