客户端线程占用过多引起等待,从而出现请求缓慢的情况

简介: 客户端线程占用过多引起等待,从而出现请求缓慢的情况

一、故障具体现象

上午8点49分到9点55分钉钉版生产环境出现系统无法登录的情况

二、故障分析过程

查看会话管理,发现存在大量异常会话

image.png



查看异常会话所在服务器的资源使用情况,并未发现明显异常

image.png

image.png

image.png


查看8点30分到8点50分之间的慢sql执行情况,未发现有明显的执行时间过长的慢sql

image.png


查看ice线程使用情况发现在8点30分到8点50分之间expense服务存在较多线程池使用量超过告警水位的情况

image.png


根据ice线程的告警信息,得出在异常发生之前出现了大量ice接口调用,在一段时间内这些调用没有返回,导致ice线程无法及时释放,导致出现请求缓慢的情况


三、故障原因

经过以上分析,本次故障很可能是短时间内expense服务出现了大量ice接口调用,ice客户端线程占用过多引起等待,从而出现请求缓慢的情况


四、解决方案

进行数据库主备切换,重新部署expense服务,增加expense服务ice最大线程数设置,增加expense服务实例数



相关文章
|
11天前
Socket网络编程练习题四:客户端上传文件(多线程版)
Socket网络编程练习题四:客户端上传文件(多线程版)
|
7月前
|
安全 Java
【JavaSE专栏76】三态和五态,线程的不同状态:新建、运行、状态、阻塞、等待、计时等待状态
【JavaSE专栏76】三态和五态,线程的不同状态:新建、运行、状态、阻塞、等待、计时等待状态
|
7月前
|
Java 程序员 调度
如何用Java编写代码来等待一个线程join()??
如何用Java编写代码来等待一个线程join()??
21 0
|
11天前
|
Java
Socket网络编程练习题五:客户端多用户上传文件(多线程版)并使用线程池管理线程
Socket网络编程练习题五:客户端多用户上传文件(多线程版)并使用线程池管理线程
|
11天前
|
网络协议 Linux C++
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)
47 0
|
10天前
|
Java API 分布式数据库
实时计算 Flink版产品使用合集之如何解决 TaskManager和 JobManager中有大量的等待线程
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
24 1
|
11天前
简便的方法开线程干活并且出现等待提示
简便的方法开线程干活并且出现等待提示
16 3
|
11天前
|
安全 算法 关系型数据库
线程安全--深入探究线程等待机制和死锁问题
线程安全--深入探究线程等待机制和死锁问题
|
11天前
|
存储 Linux API
select、poll、epoll、多线程实现并发请求处理
select、poll、epoll、多线程实现并发请求处理
36 0
|
11天前
|
安全 Java 调度
线程学习(2)线程创建,等待,安全,synchronized(三)
线程学习(2)线程创建,等待,安全,synchronized(三)
29 0