当应用出现不能访问或者访问慢(或因后台数据量太大传输慢)的时候,我们通常会怀疑是某个网络设备或节点设备的问题,然而本案例的分析过程告诉我们,经验往往是不准确的。
1. 问题描述
某机场在网络上提交业务数据时,会出现不定时和间歇性的页面无法访问和数据提交失败的现象,过段时间后恢复正常。通过服务器的业务软件看不到这些用户的登陆和连接状态,而在防火墙和审计设备中能看到用户IP地址的通信。用户无法确定是应用服务器性能的问题、网络设备的问题还是其他问题。网络拓扑图如下图(故障环境的网络拓扑图)所示。
故障环境的网络拓扑
说明:
当用户使用浏览器访问业务时,会出现页面无法访问和网页显示慢的问题。正常显示页面后输入账号信息,认证通过后提交相关的数据。业务服务器将数据转发给认证检测设备,检测通过后,将相关数据写入数据库服务器。如果业务服务器与认证机检测设备交互出现问题,那么OA服务器将无法写入到数据库中。
部署思路:
页面访问慢、无法访问和错误代码等问题,都是间歇性和不定时的出现。根据传统排障经验,先从防火墙和审计设备入手,查看是否为防火墙和审计设备出现问题。其实我们要从故障的最近位置进行排障。
网络应用性格管理分析系统可以对网络中的流量进行采集、分析、应用链关联、溯源和元数据深层分析等。所以把服务器区域的交换机进行流量镜像。分析系统部署的位置为服务器区域的交换机。
1. 分析过程
2.1 分析思路
根据客户反映的问题,OA页面出现的错误代码、资源链接失效和访问慢等,要先分析是否有网络拥塞或者突发流量出现;其次是分析服务器的处理性能是否负载过大;最后分析服务器区域是否有安全事件。
网络性能分析是通过分析客户端请求和服务器响应的流量会话数据,统计网络的延时、丢包、抖动、重传和交互数量。
应用服务器性能分析是通过分析请求和响应的交互过程,统计服务器的响应时间、重传、交互窗口值和会话数据量等。
服务器区域的安全事件是通过回溯对比正常时间和故障点时间的流量情况进行判断。
如果服务器区域正常,故障点时间和其他时间都一致,可以向上排查分析、判断和论证防火墙和审计设备。
2.2 性能分析
错误代码和服务响应慢,从采集的数据包中分析网络和应用资源是否满足访问数量和响应请求的处理能力。从网络传输和应用资源进行统计、分析和判断故障点定位,首先统计错误代码导致的链接、数量和时延。
○ 错误代码500
出现错误代码500的原因有很多,一般来说,如果程序出错,那么服务端会返回给用户一个友好的错误提示,统一称之为服务器500错误。从采集的流量中选择故障点时间段,统计出现500错误的链接、数量和IP地址。下图是应用链接500类返回码统计表
应用链接500类返回码统计表
发现存在大量的服务器内部错误,通过统计表可以查到那些IP地址出现的频率多,然后对相关IP地址进行流量检索分析。
○错误代码400
选择故障点点时间段,检索相关IP地址时的流量,流量会按照IP会话进行归类、分析、统计网络性能和应用性能数据,见下图(客户端和服务器交互性能)。统计出现400错误的链接、数量和IP地址。下图是应用链接400类返回码的统计表。
客户端和服务端交互性能
应用链接400类返回码
通过图(客户端和服务器交互性能)发现,网络传输时间很短,说明网络传输正常。下面对应用性能资源进行分析。
○ 应用资源响应时间
访问应用链接慢的问题,从采集的流量中选择故障点的时间段,在统计栏中,应用服务响应时间、慢响应出现0,如下图(应用服务区响应时间、数据传输时间和响应字节)。有响应的字节,表示成功响应过,可以排除防火墙和IPS阻断和丢弃的因素。
响应时间为链接资源服务器响应客户端请求所使用的时间,通过下图(资源响应时间统计表)发现有的链接响应时间在数十秒级。而数据传输时间在毫秒级别。
应用服务区响应时间、数据传输时间和响应字节
资源响应时间统计表
再次梳理分析,数据传输时间在微秒和纳秒,说明网络数据传输没有问题。同时客户端和服务器有数据的传输和交互,可以排除防火墙和审计设备。响应时间为客户端向应用发送请求,应用服务器响应其请求所花费的时间。通过统计表发现响应时间最大为37秒,在目前网络的快速发展下,一秒都会让客户体验到慢。
2.1 分析结论及建议
通过分析业务应用所返回的错误代码及资源响应时间,对比网络传输时间,说明相关应用模块处理能力不足和资源链接失效。深层解码数据包分析发现,响应资源均没有启动传输压缩机制,导致传输效率低下,响应传输时间增加。
解决方法:
√ 提高应用模块处理性能;
√ 提供应用并发处理能力(如增加进程数和线程数,开启异步IO模式);
√ 启用压缩传输。