解决云服务器内存不足: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. 网络问题单独解决:如果是热点网络波动导致的卡顿,换宽带会更有效。

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

相关推荐
道亦无名14 小时前
Linux下是STM32的编译修改配置文件tensorflow
linux·运维
Azure DevOps14 小时前
Azure DevOps Server:2026年3月份补丁
运维·microsoft·azure·devops
User_芊芊君子20 小时前
影音自由新玩法:Plex+cpolar 解锁异地访问,告别网盘限速烦恼
服务器·nginx·测评
wanhengidc20 小时前
云手机的运行环境如何
运维·服务器·游戏·智能手机·生活
炸膛坦客20 小时前
Linux - Ubuntu - PC端:(三)切换中英文,Fcitx5
linux·ubuntu
cyber_两只龙宝20 小时前
【Haproxy】Haproxy的算法详解及配置
linux·运维·服务器·云原生·负载均衡·haproxy·调度算法
阿常呓语21 小时前
Linux命令 jq详解
linux·运维·shell·jq
hy____1231 天前
Linux_网络基础3
linux·服务器·网络
Mr. Cao code1 天前
MySQL服务器配置与socket连接详解
服务器·数据库·mysql
starvapour1 天前
将Ubuntu设置为不使用独显渲染桌面
linux·ubuntu