当前位置: 首页 > news >正文

【服务器问题】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

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


其他建议

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

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


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


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

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


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


在这里插入图片描述


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

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

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

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



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


在这里插入图片描述



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

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


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


相关文章:

【服务器问题】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打开输出编译时…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...

命令行关闭Windows防火墙

命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)​方法二:CMD命令…...

shell脚本质数判断

shell脚本质数判断 shell输入一个正整数,判断是否为质数(素数)shell求1-100内的质数shell求给定数组输出其中的质数 shell输入一个正整数,判断是否为质数(素数) 思路: 1:1 2:1 2 3:1 2 3 4:1 2 3 4 5:1 2 3 4 5-------> 3:2 4:2 3 5:2 3…...

python基础语法Ⅰ

python基础语法Ⅰ 常量和表达式变量是什么变量的语法1.定义变量使用变量 变量的类型1.整数2.浮点数(小数)3.字符串4.布尔5.其他 动态类型特征注释注释是什么注释的语法1.行注释2.文档字符串 注释的规范 常量和表达式 我们可以把python当作一个计算器,来进行一些算术…...