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

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

一、直接的解决办法(重点)
查明原因
打开服务器官网(我用的是阿里云的服务器),查看你的服务器的相关运行信息
如果发现你的机器如下图一样,CPU占用和硬盘IO的数据有点不对劲(有点高了),这表示当前你的机器被大量服务使用着(可能是运行着某些大型服务),因此导致服务器变卡

解决办法
1、如果你的机器真的在运行某些大型服务,而且就是你自己主动运行的:那就没办法了,就是其他服务占用导致机器变卡
2、如果不是,则可能是某些服务堆积过多(比如我的机器大概是因为 vscode 服务占用的内存资源太多了(平时会用 vscode 远程登录写代码))
若这些服务你认为可以关闭,则直接重启你的机器
打开你云服务器的官网,打开你的机器服务页面,找到重启键(下面是阿里云的重启键位置)

等待重启即可
二、手动开启一个 swap 分区:缓解服务器内存和 CPU 占用过高的问题
手动开启一个 swap 分区可以暂时缓解服务器内存和 CPU 占用过高的问题。当物理内存(RAM)不足时,操作系统会使用 swap 分区作为虚拟内存,将不常用的数据移到磁盘上,从而释放 RAM 供更重要的进程使用。这可以有效防止系统因内存不足而崩溃或变得非常缓慢。
如何创建和启用 swap 分区
1. 检查现有 swap
首先,检查你的服务器是否已经有 swap 分区:
sudo swapon --show
如果输出为空,则表示没有启用 swap。
2. 创建 swap 文件
你可以通过创建一个 swap 文件来增加虚拟内存。以下是一个常见的做法:
-
选择一个合适的大小:通常建议 swap 的大小为物理内存的 1-2 倍,但具体取决于你的需求和磁盘空间。例如,如果你有 4GB 的 RAM,可以创建一个 8GB 的 swap 文件。
-
创建 swap 文件:
sudo fallocate -l 8G /swapfile -
设置适当的权限:
sudo chmod 600 /swapfile -
设置 swap 文件:把文件转换为swap文件
sudo mkswap /swapfile -
启用 swap 文件:激活swap文件,这里可以直接用命令挂载上一个swap分区,但是重启后要重新挂载
sudo swapon /swapfile如果不需要了,可以也可以卸载: 卸载:sudo swapoff /swapfile -
验证 swap 是否已启用:
sudo swapon --show
你应该看到新创建的 swap 文件已经启用。
以下是我给自己的系统开了 2G 的分区

3. 使 swap 永久生效
为了确保在系统重启后 swap 仍然有效,你需要将其添加到 /etc/fstab 文件中:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
4. 调整 swappiness 参数
swappiness 参数控制内核使用 swap 的频率。默认值通常是 60,但这可能不适合所有情况。你可以根据需要调整这个值:
-
临时调整:
sudo sysctl vm.swappiness=10 -
永久调整:
编辑/etc/sysctl.conf文件,添加或修改以下行:vm.swappiness=10
较低的 swappiness 值(如 10)意味着内核会尽量避免使用 swap,只有在绝对必要时才会将数据移到 swap 中。较高的值(如 60 或更高)则会让内核更积极地使用 swap。
5. 监控 swap 使用情况
你可以使用以下命令监控 swap 的使用情况:
free -h
或者使用 top、htop 等工具查看实时的内存和 CPU 使用情况。
其他建议
虽然启用 swap 可以暂时缓解内存不足的问题,但它并不是长期解决方案。swap 是基于磁盘的,访问速度远低于物理内存,因此频繁使用 swap 会导致系统性能下降。为了更彻底地解决问题,建议你考虑以下措施:
- 优化应用程序:
- 检查哪些进程占用了大量的内存和 CPU,并尝试优化它们。
- 关闭不必要的服务和进程,减少资源消耗。
- 增加物理内存:
- 如果可能的话,考虑升级服务器的物理内存(RAM)。这是最直接且有效的解决方法。
- 负载均衡:
- 如果你有多个服务器,可以考虑将负载分摊到不同的服务器上,避免单台服务器过载。
三、我的解决思路(非必要观看)
当你等待好一会后,发现 xshell 登录成功连接上服务器了,但是向这个打开的终端窗口输入命令,终端的反应变慢了,每一条命令都是迟迟才响应
此时我想到:服务器并不是不能登录,而是响应速度变慢了
于是打开服务器官网(我用的是阿里云的服务器)

发现我的机器 cpu占用到了 50% 以上 、硬盘IO 也到了一个较高的数值,说明该机器正在运行某些比较大的服务(如果你确实有用该服务器运行大型服务,则原因就是你的大型服务占用该机器的大部分性能,导致你的 vscode 或 xshell 登录不上机器与终端响应变慢(破案了!))
但是我确定我没有运行大型服务,是不是中病毒了(但我也确定我没有乱下载什么东西)
最终大法:重启该服务器!
(世界真理:机器的 99%的问题都能通过重启解决)
打开你云服务器的官网,打开你的机器服务页面,找到重启键(下面是阿里云的重启键位置)

重启时,机器名称旁边的 “运行中” 会变成 “正在停止”等停止字样,等待一会
过几分钟若还是 “正在停止”等停止字样,此时刷新一下当前页面试试,不行继续等待,直到最后重启成功
重新使用 vscode 和 xshell 登录远程机器,此时就成功了!
相关文章:
【服务器问题】xshell 登录远程服务器卡住( 而 vscode 直接登录不上)
打开 xshell ssh 登录远程服务器:卡在下面这里,迟迟不继续 当 SSH 连接卡在 Connection established. 之后,但没有显示远程终端提示符时,这通常意味着连接已经成功建立,说明不是网络连接和服务器连接问题,…...
AI×5G 市场前瞻及应用现状
本文为《5GAI时代:生活方式和市场的裂变》一书读后总结及研究。 本书的上架建议是“经营”,内容也更偏向于市场分析。书出版于2021年,现在是2024年,可以收集整理一些例子,看看书里的前瞻性5GAI应用预测,到…...
利用 Redis 与 Lua 脚本解决秒杀系统中的高并发与库存超卖问题
1. 前言 1.1 秒杀系统中的库存超卖问题 在电商平台上,秒杀活动是吸引用户参与并提升销量的一种常见方式。秒杀通常会以极低的价格限量出售某些商品,目的是制造紧迫感,吸引大量用户参与。然而,这种活动的特殊性也带来了许多技术挑…...
【MySQL】创建数据库、用户和密码
创建数据库、用户和密码参考sql语句 drop database if exists demoshop; drop user if exists demoshop%; -- 支持emoji:需要mysql数据库参数: character_set_serverutf8mb4 create database demoshop default character set utf8mb4 collate utf8mb4_un…...
leetcode hot100【Leetcode 72.编辑距离】java实现
Leetcode 72.编辑距离 题目描述 给定两个单词 word1 和 word2,返回将 word1 转换为 word2 所使用的最少操作数。 你可以对一个单词执行以下三种操作之一: 插入一个字符删除一个字符替换一个字符 示例 1: 输入: word1 "horse", word2 &…...
腾讯阅文集团Java后端开发面试题及参考答案
Java 的基本数据类型有哪些?Byte 的数值范围是多少? Java 的基本数据类型共有 8 种,可分为 4 类: 整数类型:包括 byte、short、int 和 long。byte 占 1 个字节,其数值范围是 - 128 到 127,用于表示较小范围的整数,节省内存空间,在处理一些底层的字节流数据或对内存要求…...
protobuf实现Hbase数据压缩
目录 前置HBase数据压缩效果获取数据(反序列化) 前置 安装说明 使用说明 HBaseDDL和DML操作 HBase数据压缩 问题 在上文的datain中原文 每次写入数据会写入4个单元格的内容,现在希望能对其进行筛减,合并成1格,减少存储空间(序列…...
论文阅读之方法: Single-cell transcriptomics of 20 mouse organs creates a Tabula Muris
The Tabula Muris Consortium., Overall coordination., Logistical coordination. et al. Single-cell transcriptomics of 20 mouse organs creates a Tabula Muris. Nature 562, 367–372 (2018). 论文地址:https://doi.org/10.1038/s41586-018-0590-4 代码地址…...
PHP语法学习(第三天)
老规矩,先回顾一下昨天学习的内容 PHP语法学习(第二天) 主要学习了PHP变量、变量的作用域、以及参数作用域。 今天由Tom来打开新的篇章 文章目录 echo 和 print 区别PHP echo 语句实例 PHP print 语句实例 PHP 数组创建数组利用array() 函数 数组的类型索引数组关联…...
PostgreSQL添加PostGIS扩展和存储坐标
一、安装 1、PostGIS安装:Getting Started | PostGIS 2、安装好后,执行下面sql CREATE EXTENSION postgis;SELECT PostGIS_Full_Version(); 二、使用 PostGIS文档:PostGIS 简介 — Introduction to PostGIS 建表: CREATE TAB…...
Flink四大基石之State(状态) 的使用详解
目录 一、有状态计算与无状态计算 (一)概念差异 (二)应用场景 二、有状态计算中的状态分类 (一)托管状态(Managed State)与原生状态(Raw State) 两者的…...
Linux中dos2unix详解
dos2unix 是一个用于将文本文件从DOS/Windows格式转换为Unix/Linux格式的工具。在不同的操作系统中,文本文件中的换行符表示方式是不一样的。具体来说: 在DOS和Windows系统中,换行由两个字符组成:回车(Carriage Retur…...
MySQL MVCC 介绍
MVCC(Multi-Version Concurrency Control)是一种并发控制机制,用于在多个并发事务同时读写数据库时保持数据的一致性和隔离性。MVCC通过在每个数据行上维护多个版本的数据来实现。当一个事务要对数据库中的数据进行修改时,MVCC不会…...
Linux篇之日志管理工具Logrotate介绍并结合crontab使用
1. Logrotate介绍 logrotate 是一个用于管理和轮换日志文件的工具,通常用于 Unix 和 Linux 系统。它可以自动化日志文件的轮换、压缩、删除和邮寄等操作,确保日志文件不会无限制地增长,占用过多的磁盘空间。 2. 主要功能 轮换:定期将日志文件移动到备份目录,并生成新的…...
Vulnhub靶场 Matrix-Breakout: 2 Morpheus 练习
目录 0x00 准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用1. 文件上传2. 提权 0x04 总结 0x00 准备 下载连接:https://download.vulnhub.com/matrix-breakout/matrix-breakout-2-morpheus.ova 介绍: This is the second in the Matrix-Br…...
秒杀项目 超卖问题 详解
秒杀项目中的超卖问题详解 秒杀场景是一种高并发场景,用户在短时间内大量涌入抢购有限的商品。超卖问题指的是由于系统设计不合理,导致实际售出的商品数量超过库存数量。 1. 为什么会出现超卖问题? 超卖问题通常由以下原因引发:…...
Linux系统编程之进程控制
概述 在Linux系统中,创建一个新的进程后,如何对该进程进行有效的控制,是一项非常重要的操作。控制进程状态的操作主要包括:进程的执行、进程的等待、进程的终止等。下面,我们将逐个进行介绍。 进程的执行 创建进程后&a…...
集合的相关性质与定义
集合 集合 集合描述了一组对象的集合,而映射描述了集合之间的对应关系。 集合 集合是由一组无序的,互不相同的对象组成的整体,集合中的对象称为元素或成员。集合可以用大括号{}表示,元素之间用逗号进行分隔。 定义: 集合 A …...
pytest自定义命令行参数
实际使用场景:pytest运行用例的时候,启动mitmdump进程试试抓包,pytest命令行启动的时候,传入mitmdump需要的参数(1)抓包生成的文件地址 (2)mitm的proxy设置 # 在pytest的固定文件中…...
c++预编译头文件
文章目录 c预编译头文件1.使用g编译预编译头文件2.使用visual studio进行预编译头文件2.1visual studio如何设置输出预处理文件(.i文件)2.2visual studio 如何设置预编译(初始创建空项目的情况下)2.3 visual studio打开输出编译时…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
