各位好,我是
@道普云
一站式云测试SaaS平台。一个在软件测试道路上不断折腾十余年的萌新。
欢迎关注我的专栏和我的主页
@道普云
文章内容具有一定门槛,建议先赞再收藏慢慢学习,有不懂的问题欢迎私聊我。
希望这篇文章对想提高软件测试水平的你有所帮助。
远程培训系统的项目背景主要有以下特点:总体用户量大,达到30万级别;业务并发量大,部分业务估算用户量达到10万并发级别;业务处理实时性要求高,要求响应时间非常短;再就是业务处理可靠性要求高,系统一旦出现问题,就会给30万数量级的用户带来很大的困难、无法使用平台,再去组织这30万的用户去进行远程培训的代价非常之大。
系统架构情况如下:
存在的问题主要有:
· 业务响应时间长。
· 业务处理失败率高。
· 用户提交数据丢失。
· 功能操作错误。
我们从时间分布、资源分布、异常信息三个方面去分析诊断。根据分析,总结出以下五大问题:前端程序问题、基础软件配置问题、软件架构问题、程序算法问题、部署运维问题。
前端程序问题现象及监控
前端页面响应时间过长。
通过HTTPWatch发现哪些请求处理时间过长,连接出现阻塞。
通过Web服务器资源监控发现带宽值达到极限,处理器资源利用率也较高。
通过其他服务器资源监控发现资源利用率较低。
前端程序问题分析诊断
主要是由于前端脚本文件、样式文件、图片文件等数量过多,造成首次访问连接数过多。
部分静态文件体积过大,未使用压缩算法造成数据传输量过大。
基础软件配置问题现象及监控
前端页面响应时间过长,部分写入业务处理操作失败率较高。
通过HTTPWatch发现哪些请求处理时间过长。
通过Web服务器、应用服务器资源监控发现处理器资源利用率也较高。
基础软件配置问题分析诊断
通过比对测试发现Web服务器缓存失效、Jetty线程池配置不合理。
软件架构问题现象及监控
系统登录操作响应时间过长。
通过在应用程序中加入相关时间监控日志,定位向Hazelcast内存数据库写入登录信息时间过长。
通过应用服务器、数据库服务器资源监控发现资源占用合理。
软件架构问题分析诊断
通过与开发人员讨论分析发现,采用同步架构写入数据库,导致写入请求量较大时写入速度明显减慢。
程序算法问题现象及监控(1)
作业提交操作响应时间过长。
通过在应用程序中加入相关时间监控日志,定位向内存数据库Hazelcast写入作业内容数据、向消息中间件写入作业属性数据信息时间过长。
通过应用服务器资源监控发现处理器资源占用较高。
程序算法问题分析诊断
通过与开发人员讨论分析发现,单线程负责完成内容数据、属性数据的处理,处理逻辑较多。
程序算法问题现象及监控(2)
课程学习功能错误,学习日志写入Hazelcast、Mongodb、MySQL等,各数据库学习日志统计数据不统一。
通过在应用程序中加入统计数据监控日志,发现程序算法设计存在问题,各数据库计算结果在高并发情况下容易出现误差。
通过各服务器资源监控发现资源使用在正常范围内。
程序算法问题分析诊断
通过与开发人员讨论分析发现,由于应用服务器多线程处理速度为秒级,应用服务器时间不统一,导致日志数据写入数据库时,数据会被多次计算。远程培训系统-部署运维问题现象及监控
个人门户首页操作响应时间过长。
通过在应用程序中加入相关时间监控日志,定位应用服务器处理时间过长。
通过应用服务器资源监控发现IO资源占用较高。
部署运维问题分析诊断
通过对占用IO资源的Java线程进行分析,发现Log4j日志相关线程进行了大量写入操作,发现其日志级别设置过高,写入数据量过大。
通过以上几个方面的诊断,就可以全面地排查出系统的性能问题了。