系统大面积无法访问,如何定位根源?

简介: 系统大面积无法访问,如何定位根源?


客户端或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。而当客户端无法访问时,将造成所有服务的直接中断。针对这一问题,运维人员将进行大量的排查工作,且由于原因的多种多样使得排查难度增大。面对这样棘手的问题,如何第一时间定位问题原因并有效解决?本案例通过讲解如何运用网络回溯分析技术而快速精准定位该类事件的问题根源。

1.1 问题描述

科来网络分析工程师接到某省运营商的系统运维人员反馈,该集团V8系统的客户端突然出现大面积无法访问情况,页面无法正常打开,虽然已经对网络设备经过一系列检测,但仍然无法确定问题原因。由于前期已经在V8系统的服务器区处部署了科来网络回溯分析系统,对系统进行实时网络监测与网络全流量数据存储,这为成功帮助用户定位异常现象的根本原因,提供了有效的数据支撑。

1.2 分析过程

通过配置科来网络回溯分析系统,回溯整个事件进行取证,对相关的业务访问逻辑进行抓包分析。在对营业厅→外网X.X.244.46→负载均衡设备(F5)X.X.248.27→服务器X.X.16.92-95→数据库X.X.16.86的监控分析中发现发生故障的时间段内存在大量访问被重置的情况,详情如下图所示。


图 1-1

通过对该时间段的会话分析,发现客户端在与服务端建立三次握手后发送POST请求,服务端正常回复了ACK进行确认,但等待几秒甚至几百秒后,客户端仍未接收到数据,于是将会话断开,直接回复客户端RST会话关闭,如下图所示。


图 1-2


图 1-3

通过对数据库X.X.16.86的监控,发现应用需要从数据库调用数据,那么是不是数据库端出现了问题?

经客户反馈,得知该系统数据库正常情况下连接数较少且连接多为长连接,所以单个客户端相关连接数上限设定值为100。但通过本次对数据库的分析,发现服务器X.X.16.94在半个小时的连接数达到了229个,X.X.16.93的连接数达到了132个,明显超过100个连接数的上限值。

由于该段时间内的数据库连接数很高,导致数据库响应缓慢甚至无响应,也间接导致了客户端访问应用也无法正常打开的现象,如下图所示。


图 1-4


图 1-5

通过对客户端X.X.16.94访问数据库的会话进行详细分析,发现客户端在发送请求之后,数据库没有及时发送数据进行响应,客户端在等待264秒后发送FIN中断连接信号,五分钟之后才得到数据库X.X.16.86回复响应数据以及FIN包。这直接导致数据库X.X.16.86的连接数过多,数据库无法正常响应,如下图所示。


图 1-6


图 1-7

通过上述分析可知:由于数据库出现问题,不能及时断开连接,导致客户端的连接数超过客户设定的上限值。因此数据库无法正常响应数据,间接导致客户端无法正常调取数据以及正常访问应用,应用服务器的连接数就撑爆了连接池。数据库监控,如下图所示。


图 1-8

1.3 分析结论及建议

定位问题发生的原因后,我们与该系统的应用及数据库的管理员进行沟通,希望其修改X.X.16.92-95服务器的最大DB连接数配置,从而提高系统容错瓶颈,解决问题。

调整后,系统恢复正常。同时客户端(X.X.16.92-95)连接数恢复正常,如下两图所示。


图 1-9


图 1-10

1.4 价值

现如今我们面对的业务系统越加复杂,当遇到故障时,传统检测手段往往不能有效地从错综复杂的相关因素中定位问题根因。这时可通过网络回溯分析技术对故障事件的相关业务进行取证分析,精准发现业务流程中的异常环节,从而实现故障根因的快速定位。

相关文章
|
存储 边缘计算 人工智能
边缘计算(Link IoT Edge)介绍|学习笔记
快速学习边缘计算(Link IoT Edge)介绍
1129 0
边缘计算(Link IoT Edge)介绍|学习笔记
|
SQL 关系型数据库 MySQL
pt-tools系列:pt-online-schema-change 最佳实践
pt的详细步骤 Step 1: Create the new table. Step 2: Alter the new, empty table. This should be very quick, or die if the user specified a bad alter statement.
5500 0
|
10月前
|
监控 API 索引
Elasticsearch集群健康检查
【11月更文挑战第4天】
308 3
|
网络协议 网络安全 网络架构
不会这10个抓包技巧,就不要在网工圈里混了!
不会这10个抓包技巧,就不要在网工圈里混了!
494 1
|
11月前
|
XML 前端开发 JavaScript
如何制作一个自己的网站?
在今天的互联网时代,网站展示已经是一个很基础的营销工具。不管是企业、还是个人,如何制作一个自己的网站?本文将会提供一个全面的基础制作网页教程,教你如何从零开始制作网页。
1128 0
|
JavaScript 小程序 Java
养老院|基于Springboot的养老院管理系统设计与实现(源码+数据库+文档)
养老院|基于Springboot的养老院管理系统设计与实现(源码+数据库+文档)
766 1
|
11月前
|
监控 架构师 Java
JVM进阶调优系列(6)一文详解JVM参数与大厂实战调优模板推荐
本文详述了JVM参数的分类及使用方法,包括标准参数、非标准参数和不稳定参数的定义及其应用场景。特别介绍了JVM调优中的关键参数,如堆内存、垃圾回收器和GC日志等配置,并提供了大厂生产环境中常用的调优模板,帮助开发者优化Java应用程序的性能。
|
Java 编译器 数据库
小唐开始学 Spring Boot——(4)代码生成器
小唐开始学 Spring Boot——(4)代码生成器
|
网络协议 安全 Unix
6! 用Python脚本演示TCP 服务器与客户端通信过程!
6! 用Python脚本演示TCP 服务器与客户端通信过程!
247 1
|
负载均衡 监控 网络协议
玩核心交换机,必须掌握的6个知识点!
玩核心交换机,必须掌握的6个知识点!
458 1