【服务器问题】xshell 登录远程服务器卡住( 而 vscode 直接登录不上)

打开 xshell ssh 登录远程服务器:卡在下面这里,迟迟不继续

当 SSH 连接卡在 Connection established. 之后,但没有显示远程终端提示符时,这通常意味着连接已经成功建立,说明不是网络连接和服务器连接问题,可能就是服务器自己的问题了



一、直接的解决办法(重点)

查明原因

打开服务器官网(我用的是阿里云的服务器),查看你的服务器的相关运行信息

如果发现你的机器如下图一样,CPU占用和硬盘IO的数据有点不对劲(有点高了),这表示当前你的机器被大量服务使用着(可能是运行着某些大型服务),因此导致服务器变卡



解决办法

1、如果你的机器真的在运行某些大型服务,而且就是你自己主动运行的:那就没办法了,就是其他服务占用导致机器变卡

2、如果不是,则可能是某些服务堆积过多(比如我的机器大概是因为 vscode 服务占用的内存资源太多了(平时会用 vscode 远程登录写代码))

若这些服务你认为可以关闭,则直接重启你的机器

打开你云服务器的官网,打开你的机器服务页面,找到重启键(下面是阿里云的重启键位置)



等待重启即可

二、手动开启一个 swap 分区:缓解服务器内存和 CPU 占用过高的问题

​ 手动开启一个 swap 分区可以暂时缓解服务器内存和 CPU 占用过高的问题。当物理内存(RAM)不足时,操作系统会使用 swap 分区作为虚拟内存,将不常用的数据移到磁盘上,从而释放 RAM 供更重要的进程使用。这可以有效防止系统因内存不足而崩溃或变得非常缓慢。

如何创建和启用 swap 分区

1. 检查现有 swap

首先,检查你的服务器是否已经有 swap 分区:

sh 复制代码
sudo swapon --show

如果输出为空,则表示没有启用 swap。

2. 创建 swap 文件

你可以通过创建一个 swap 文件来增加虚拟内存。以下是一个常见的做法:

  • 选择一个合适的大小:通常建议 swap 的大小为物理内存的 1-2 倍,但具体取决于你的需求和磁盘空间。例如,如果你有 4GB 的 RAM,可以创建一个 8GB 的 swap 文件。

  • 创建 swap 文件

    sh 复制代码
    sudo fallocate -l 8G /swapfile
  • 设置适当的权限

    sh 复制代码
    sudo chmod 600 /swapfile
  • 设置 swap 文件:把文件转换为swap文件

    sh 复制代码
    sudo mkswap /swapfile
  • 启用 swap 文件:激活swap文件,这里可以直接用命令挂载上一个swap分区,但是重启后要重新挂载

    sh 复制代码
    sudo swapon /swapfile
    
    如果不需要了,可以也可以卸载:
    卸载:sudo swapoff /swapfile
  • 验证 swap 是否已启用

    sh 复制代码
    sudo swapon --show

你应该看到新创建的 swap 文件已经启用。

以下是我给自己的系统开了 2G 的分区



3. 使 swap 永久生效

为了确保在系统重启后 swap 仍然有效,你需要将其添加到 /etc/fstab 文件中:

sh 复制代码
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
4. 调整 swappiness 参数

swappiness 参数控制内核使用 swap 的频率。默认值通常是 60,但这可能不适合所有情况。你可以根据需要调整这个值:

  • 临时调整

    sh 复制代码
    sudo sysctl vm.swappiness=10
  • 永久调整

    编辑 /etc/sysctl.conf 文件,添加或修改以下行:

    sh 复制代码
    vm.swappiness=10

较低的 swappiness 值(如 10)意味着内核会尽量避免使用 swap,只有在绝对必要时才会将数据移到 swap 中。较高的值(如 60 或更高)则会让内核更积极地使用 swap。

5. 监控 swap 使用情况

你可以使用以下命令监控 swap 的使用情况:

sh 复制代码
free -h

或者使用 tophtop 等工具查看实时的内存和 CPU 使用情况。

其他建议

虽然启用 swap 可以暂时缓解内存不足的问题,但它并不是长期解决方案。swap 是基于磁盘的,访问速度远低于物理内存,因此频繁使用 swap 会导致系统性能下降。为了更彻底地解决问题,建议你考虑以下措施:

  1. 优化应用程序
    • 检查哪些进程占用了大量的内存和 CPU,并尝试优化它们。
    • 关闭不必要的服务和进程,减少资源消耗。
  2. 增加物理内存
    • 如果可能的话,考虑升级服务器的物理内存(RAM)。这是最直接且有效的解决方法。
  3. 负载均衡
    • 如果你有多个服务器,可以考虑将负载分摊到不同的服务器上,避免单台服务器过载。

三、我的解决思路(非必要观看)

当你等待好一会后,发现 xshell 登录成功连接上服务器了,但是向这个打开的终端窗口输入命令,终端的反应变慢了,每一条命令都是迟迟才响应

此时我想到:服务器并不是不能登录,而是响应速度变慢了

于是打开服务器官网(我用的是阿里云的服务器)



发现我的机器 cpu占用到了 50% 以上 、硬盘IO 也到了一个较高的数值,说明该机器正在运行某些比较大的服务(如果你确实有用该服务器运行大型服务,则原因就是你的大型服务占用该机器的大部分性能,导致你的 vscodexshell 登录不上机器与终端响应变慢(破案了!))

但是我确定我没有运行大型服务,是不是中病毒了(但我也确定我没有乱下载什么东西)

最终大法:重启该服务器!

(世界真理:机器的 99%的问题都能通过重启解决)

打开你云服务器的官网,打开你的机器服务页面,找到重启键(下面是阿里云的重启键位置)



重启时,机器名称旁边的 "运行中" 会变成 "正在停止"等停止字样,等待一会

过几分钟若还是 "正在停止"等停止字样,此时刷新一下当前页面试试,不行继续等待,直到最后重启成功

重新使用 vscodexshell 登录远程机器,此时就成功了!

相关推荐
腾渊信息科技公司3 小时前
工业数据运维痛点根治方案:基于AI Agent的产线自动化台账系统落地
运维·人工智能·自动化·个人开发·ai编程
Dxy12393102163 小时前
Proxy Protocol v2 详解
运维
踏月的造梦星球4 小时前
DMDPC 学习:架构、部署、运维与调优
运维·数据库·学习·架构
潘正翔4 小时前
docker核心概念
linux·运维·服务器·docker·容器·centos·运维开发
renhongxia15 小时前
世界模型,是“空中楼阁”还是AGI的“最后一块拼图”?
运维·服务器·数据库·人工智能·算法·agi
Dovis(誓平步青云)6 小时前
远程办公软件文件传输实测:6 款工具的速度、稳定性和办公体验对比
linux·运维·服务器·后端·生成对抗网络
专注_每天进步一点点6 小时前
SLB(绑定弹性公网ip)-gateway-业务pod,gateway上出现reset by peer,业务pod上没有reset by peer
服务器·tcp/ip·gateway
csdn_aspnet7 小时前
GitHub Actions自动化运维实战,用CI/CD流水线实现测试、部署、安全扫描一体化
运维·安全·ci/cd·自动化·github
ACP广源盛139246256737 小时前
GSV6155@ACP# 搭配 AI 服务器、AI PC 完整适配方案
大数据·服务器·人工智能·分布式·单片机·嵌入式硬件
Inhand陈工8 小时前
数据中心UPS无功补偿与智能化监控方案:基于IG502的Modbus RTU转IEC61850实战
运维·人工智能·物联网·信息与通信