【已解决】VSCode 连接 Linux 云服务器,代码写着写着服务器突然挂了是怎么 ...

打印 上一主题 下一主题

主题 881|帖子 881|积分 2643


1. 问题形貌

在利用 VSCode 连接远程 Ubuntu 云服务器写代码的时候,感觉越写越卡,代码提示半天出不来,最后更是直接断开连接了:

纵然把 VSCode 关了,再重启也没用,再次登录直接秒挂;
只能重启服务器,但是重启后写一段时间还是会挂。
2. 问题缘故起因

一般来说,这种环境是服务器设置太低造成的,比如我的服务器内存只有 2G,代码 / 包罗的库 轻微多一点,VSCode 一会就把内存搞爆了,这时候我们可以利用 htop 指令查看资源占用环境:

可以看到有 60% 的内存都被 VSCode 占用了,在这种环境下,关闭 VSCode 以后可以缓解,但是假如再次打开,内存占用又会爆满。
个人推测:
在我们写代码的时候,假如在 VSCode 上安装了相干的代码插件,为了及时显式代码的提示信息,VSCode 会把相干库的内容全部拉到内存中,假如这些库很大,再加上 VSCode 自己的内存斲丧,就会导致内存被大量占用,尤其是我的内存只有 2G,很容易就把内存打满了,造成服务器运行缓慢 / 无响应。
3. 解决方法


  • 添加 Swap 内存扩展(保举)
    通过上面 htop 界面可以发现,在内存 Mem 的下方还有一个 Swp ,这是什么意思呢?这也是一块内存空间吗?实在在 Linux 系统上允许利用磁盘空间来充当内存空间。通过添加和设置 Swap 空间,可以在内存不敷的环境下利用磁盘空间作为假造内存,从而缓解内存压力。

    • 查抄是否已有 Swap 空间
      首先,查抄系统是否已经设置了Swap空间:
      1. sudo swapon --show
      复制代码
      假如没有输出,说明系统没有设置Swap空间。
    • 创建 Swap 文件
      以下是创建 1GB Swap 文件的步调:
      1. # 创建一个 1GB 的 Swap 文件
      2. sudo fallocate -l 1G /swapfile
      复制代码
      假如 fallocate 命令不可用,可以利用以下命令取代:
      1. sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
      复制代码
    • 设置正确的权限
      为了确保只有 root 用户可以访问 Swap 文件,需要设置文件权限:
      1. sudo chmod 600 /swapfile
      复制代码
    • 将文件转换为 Swap 空间
      利用 mkswap 命令将文件转换为 Swap 空间:
      1. sudo mkswap /swapfile
      复制代码
    • 启用 Swap 文件
      启用刚刚创建的 Swap 文件:
      1. sudo swapon /swapfile
      复制代码
      你可以再次利用 sudo swapon --show
      命令确认 Swap 空间已经启用。
    • 永久启用 Swap 文件
      为了在系统重启后依然保留 Swap 文件,需要将其添加到 /etc/fstab 中:
      1. sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'
      复制代码
    • 查抄 Swap 空间利用环境
      利用以下命令查抄 Swap 空间的利用环境:
      1. free -h
      复制代码
      你将看到类似如下的输出:
      1.               total        used        free      shared  buff/cache   available
      2. Mem:           2.0G        1.5G        100M        100M        400M        300M
      3. Swap:          1.0G        256M        744M
      复制代码
    这样,你就可以通过添加和设置 Swap 空间来扩展假造内存,缓解内存不敷的问题。这种方法适用于低内存设置的服务器,可以显著提高系统的稳定性和性能。
    实际测试下来,Swap 假造内存空间慢是慢了点,但是服务器的内存不会再爆满了,所以个人还是比较保举利用这种方法。除此之外 Swap 空间也可以进行其他的参数调解,以便适应不同的工作环境,大家感兴趣可以自己研究一下。


  • 升级服务器设置
    假如你是一个全职程序员,在遇到这种问题的时候,升级设置是很有须要的。
  • 禁用插件
    假如你是一个学生,大概没有那么多资金来升级设置,那么你可以通过禁用大量占用内存的插件来解决内存问题,但是这样会很影响我们写代码的服从。
  • 手动停止进程
    这是我之前用过的方法,假如你不想升级设置,也不想删除实用插件,那么你可以试试手动把占用内存高的进程停止掉。但是随着代码量不断增加,刚清理出来的内存很快又会被占满,所以这个方法只得当应急。

    • 利用 htop 指令打开资源管理器,这内里可以直接用鼠标进行操作,很方便;

    • 选中一个进程后,键入 F9 大概直接鼠标点击 kill ;

    • 现在你可以选择要给 进程 发送的 信号 ,一般默认的 SIGTERM(进程停止信号) 即可达到我们的目标;
    • 完成后可以看到内存空间被清理出来了,经过我的测试下来,这个操作并不会对正在运行的 VSCode 和正在编写的代码造成什么影响。但是继承写代码,又会继承占用内存,所以我们感觉到卡顿的时候,应该去及时查看一下内存利用环境;

    • 程序在编译时也会大量占用内存,假如你经常在程序编译时卡死,那么你应该在程序编译前清理一下内存。

  • 待增补…

   END
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

盛世宏图

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表