SSH 连接超时,VSCode 远程开发断链问题排查

嗯最近晚上有时在家使用 vscode 远程开发连接腾讯云的机器写点小东西,有几个晚上发现 vscode 远程很容易断开,甚至断开之后无法重连,这时候 ssh 也无法连接,但是 ping 很正常,原本还怀疑是电信宽带日常晚上常规垃圾表现。

后来在腾讯云的管理控制台上发现我断连无法接上的时候,云监控里面连上报数据都没有,显示缺失了数据。但是可以大致看到出现这个情况前 CPU、内存、IO 迅速爬升直到爆满,当 CPU 下来的时候就自愈了。考虑到我这个是腾讯云底配1C1G 的机器,资源紧张是很正常的,但我还是想看看是哪个鬼把资源耗尽了,于是我做了一个小脚本。

脚本内容很简单,每5秒把 top 的结果打到文件里面,保留最近30分钟的记录。果然没过几天情况又出现了,这时候试了下腾讯云 VNC 的控制台还可以勉强登上机器,只是比较慢,实时看 top 的时候发现 wa 很大,负载巨高,内存也所剩无几。大致可以瞄到是 gopls 进程和 vscode 远程开发相关的 node 服务占了大部分。

待机器喘息过来,我想去看脚本收集的日志的时候发现出问题的时间段前一分钟只落盘了两份文件,后一分钟一个文件都没有,正常5秒一落一分钟有12个文件,机器看来完全卡死哈哈,我从那两份文件里面简单看了一下,大致如下。

会发现这里 wa 又好好的,显然是 wa 缓过来了文件才能落盘,wa 爆炸的时候脚本已经完全卡住了。不过从上面的信息来看内存爆满是不争的事实,进程列表里面也看到 kswapd0跑出来了,一定是内存爆炸之后系统开始 swap,上图也可以看出来 gopls 用了 17.1%的内存 virt 500m 以上。

我想可能是时候升级一下这个祖传 1C1G 机器了,这个老机器裸机是 S2型42软妹币一个月,最新的 AMD 的机器SA2 1C1G 已经做到了29软妹币一个月,1C2G 32软妹币一个月,性价比非常高,老用户也可以买,新用户当然是买爆款1核2G云服务器,首年99元

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据