本文概述了面对系统性能问题如闪退、访问速度慢及卡顿等情况的排查与处理方法。首先定义了“闪退”现象,并列举了引发闪退的多种可能因素及相应排查步骤,如检查服务器运行状况、磁盘空间及操作系统日志等。接着,针对访问速度慢及卡顿问题,分析了影响因素并提供了从客户端到服务器的详细排查方法,包括检查网络环境、服务器及数据库资源使用情况等。最后,文章还介绍了星空系统性能排查和优化的具体方法。
一、 场景
在项目中如果面临系统速度慢、卡顿、闪退等情况时,往往会对客户的使用造成很不好的影响,特别所有用户频频出现闪退时,会造成系统没办法使用,需要立即解决,那当遇到性能问题时如何排查呢?从哪下手呢?很多项目现场人员束手无策,到底是客户的应用服务器硬件环境(比如CPU、内存)出了问题?还是客户的网络环境有问题?还是系统中的二开引起的问题?还是标准产品在运行某些比较耗性能的程序比如跑MRP、算成本等引起的呢?下面就结合一些项目实际案例中存在的问题给出一些常用的性能问题排查方法和处理方法
二、 具体场景及解决办法
1. 如果出现了闪退了怎么排查和处理?
(1)什么是“闪退”?
闪退时指系统(比如星空产品)用户在进行系统操作时,突然就莫名其妙的退出来系统了,也没任何提示
(2)如果多个用户都在同一时刻出现了退出系统的情况下,一定是出问题了,出现这种情况如何排查和处理呢?
首先我们了解一下影响星空产品闪退的因素,影响闪退的因素主要有:
1) 应用服务器IIS奔溃(IIS 会主动重启)
2) WAS异常:为应用程序池“K3Cloud”提供服务的进程在与 Windows ProcessActivation Service 通信时出现严重错误
3) 服务器资源出现严重瓶颈,比如CPU长期处于100%,内存被耗光既然这么多因素都会引起闪退,实际发生时到底要怎么进行排查具体是什么引起的呢?
闪退时排查方法:
1)优先检查应用服务器和数据库服务器的运行情况,包括CPU及内存的运行情况
例如:曾经一个项目2台应用服务器做了集群,数据库服务器做了RAC,有一天突然很多用户发现了闪退现象,最后发
现了造成的原因是其中一台应用服务器远程都进不了,分析肯定是这台服务器出问题了,最后发现这台服务器
有一台远程进去,这台服务器又远程别的服务器,并且长期连接着,未释放,结果内存资源被耗光,造成这个
服务器出问题了,后边通过将这台服务器重启以后就解决了,再未出现过闪退。
2)其次检查应用服务器安装目前的磁盘空间及数据库磁盘空间是否已满
3)如果上述两个检查都正常则需要检查应用服务器的操作系统日志、ramp文件分析和星空的日志文件分析
操作系统日志分析
操作系统在出现重大错误,如果是系统或者程序运行时有错误时都会形成日志,级别分为; 警告/错误,主要来源包括
(1)WAS
异常:为应用程序池“K3Cloud”提供服务的进程在与 WindowsProcess Activation Service 通信时出现严重错误
(2)IIS-IIS Reset
主动重启:从用户 NT AUTHORITY\SYSTEM 收到 IIS 停止命令。记录的数据为状态代码。
(3)Application Error
报错一般如下:
(4)ASP.NET 4.0.30319.0
报错如下:
(5)NET Runtime
Windows Error Reporting
错误存储段 ,类型 0
事件名称: APPCRASH
响应: 不可用
Cab ID: 0
问题签名:
P1: w3wp.exe
P2: 7.5.7601.17514
P3: 4ce7afa2
P4: KERNELBASE.dll
P5: 6.1.7601.17514
P6: 4ce7c78c
P7: e0434352
P8: 000000000000a49d
排查的点包括:
(1) 应用服务器和数据库服务器磁盘空间是否满了
(2) 如果是系统崩溃,通过应用服务器的windows日志查看如果在闪退时间段有IIS重启日志,则需要根据DUMP文件及系统日志结合起来分析,一般是应用程序实现
DUMP文件的创建办法(请下载附件中的批处理文件执行)
请执行批处理文件,注意如果没有D盘,请修改DUMP文件路径。
如果有产生最新的DUMP文件,则需要对DUPM文件进行分析
如果有产生,则如下图:
(3) 对系统日志进行分析
星空产品很多重要操作都有记录重要异常日志,可以帮助分析
2. 如果出现了访问速度慢及卡顿的情况要怎么处理?
影响因素:
(1) 服务器资源遇到瓶颈(比如配置不够),包括CPU及内存
(2) 网络环境(网速慢)
(3) 系统存在性能瓶颈,比如某些业务操作造成占用大量的服务器资源
(4) 客户端个人电脑配置不够
排查方法和处理方法:
(1) 首先在应用服务器上输入:http://localhost/k3cloud,如果访问速度正常不卡,则需排查客户的电脑配置
及网络情况,如果查出客户端网络或者电脑引起的,则需优化个人的电脑配置,如果是网络引起,则改善网
络环境,如果个人电脑配置及网络环境也正常,则继续以下排查方法进行排查。
(2) 是浏览器访问慢还是客户端访问也很慢,如果客户端访问很快,就HTML5比较慢一些,那就可以在HTML5流
式布局那里做一下配置,让默认不用加载所有页签,仅加载部分主要页签,加载完成后需要查看再让其加
载,如果都很慢,则有可能是服务器有问题或者是系统本身问题造成,则按以下方法继续排查
(3) 检查数据库服务器资源使用情况
1) 检查EM表现,如数据库服务器是否存在阻塞,长时间SQL
如果存在阻塞则需要解决阻塞,分析SQL
2) 数据库服务器CPU使用率是否长时间超过80%
如果存在则可能有以下原因
硬件资源可能不足,如果硬件资源不足,则需增加硬件资源配置
业务操作时,数据查询范围有可能不精确,需分析其SQL语句
(4) 检查应用服务器资源使用情况
检查应用服务器的CPU使用率是否长时间超过80%或者或者应用服务器的内存使用率是否接近物理内存的80%,或者超过80GB?
环境是否变化:如是否增加二开功能,升级补丁
分析二开代码(特别是日志文件分析,结合前面闪退章节的日志分析方法进行分析,对异常报错的需要分析并解决,很多异常的抛出是从服务器排出来的,比如发邮件功能连接邮件服务器的时候,如果连不通或者连不上,这个需要耗费较多的时间反馈一个异常)
业务系统变化:在线用户数增加,业务量变大,成本计算,月结处理等,对于业务量大及在线用户数多的情况,如果影响性能建议增加多台应用服务器做集群
3. 星空系统性能排查和优化方法
iiscrash.rar(0.46KB)
推荐阅读