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

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


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

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 价值

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

相关文章
|
2月前
|
监控
模拟点击问题之从风险防控的角度看,设备风险如何解决
模拟点击问题之从风险防控的角度看,设备风险如何解决
|
数据处理
如何快速定位现网 BUG
如何快速定位现网 BUG
75 0
|
运维 监控 数据可视化
不改一行代码定位线上性能问题
性能问题。 大致的现象是: 我们提供出去的一个 OpenAPI 反应时快时慢,快的时候几十毫秒,慢的时候几秒钟才响应。
|
安全 关系型数据库 MySQL
网站被攻击导致服务器CPU百分之百 无法访问的终极解决办法
公司的官方网站从春节前无缘无故就出现连接数据库异常的现象,由于以前也出现过,再加上没多久逢年过节,也就没有太在乎这个情况,仅仅试着重新启动了网站数据库。逢年过节的时候我发现了有一些不太对,网站数据库只有一打开没多久就宕掉。检查服务器里的资源,发现服务器的内存被占满,CPU达到百分之100就连远程连接都越来越巨慢至极,因此开展对该网站被攻击的问题解决。
463 0
网站被攻击导致服务器CPU百分之百 无法访问的终极解决办法
|
Java Android开发
Android内存泄漏定位、分析、解决全方案
原文链接 更多教程 为什么会发生内存泄漏 内存空间使用完毕之后未回收, 会导致内存泄漏。有人会问:Java不是有垃圾自动回收机制么?不幸的是,在Java中仍存在很多容易导致内存泄漏的逻辑(logical leak)。
2201 0
|
监控 应用服务中间件 数据库
不改一行代码定位线上性能问题,可能吗?
最近时运不佳,几乎天天被线上问题骚扰。前几天刚解决了一个HashSet的并发问题,周六又来了一个性能问题。 大致的现象是: 我们提供出去的一个OpenAPI反应时快时慢,快的时候几十毫秒,慢的时候几秒钟才响应。
2167 0
|
安全
电脑软件常见的故障原因及排除方法
电脑软件常见的故障原因及排除方法
1724 0