下面描述的是前段时间协助厦门本地一家上市IT公司做产品技术选型时对他们的技术框架进行性能测试与优化过程记录,因测试过程中涉及数据库产品选型、应用框架诊断分析优化、操作系统监控、硬件配置优化分析、JVM监控优化、SQL语法优化等各类问题的监控分析优化,篇幅比较大,顾本次主要是描述在同样基础软硬件下、同样应用工程包和框架、同样数据量下,针对MYSQL环境下进行单点登录压力测试的结果过程记录。
1、 用户登录,首页查看,退出
2、 某业务交易新增、查询、删除、上传文件
3、 业务审批流程创建、提交、审批、同意等工作流程;
在压力测试中,首先压力测试,登录首页、退出,10个用户并发10分钟,通过loadrunner控制台发现登录响应时间120秒超时现象,失败率一直在递增,LR结果如下图:
因为是使用wind2008系统服务,监控相对比较方面,通过任务管理器监控,发现应用服务器CPU使用不均衡,出现类似单线程死锁现象,其中一个CPU线程使用率大于80%,而另外一个CPU线程使用率非常低,如下图:
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3669)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3609)
通过压力测试过程发现内存溢出时,监控到的JVM使用如下图:无法正常GC回收导致,内存溢出,也发现了JVM默认配置下有问题,如果配置合理JVM使用虽然会异常,但是还是可以强制GC回收,问题如下图:
因登录首页后需要刷新框架,其中最大问题是框架设计中对登录首页会对某一个业务交易的公告信息进行时时刷新展现数据,如果对应业务表数据量有多少,则公告信息就全部展现,如下业务交易图:
1、 通过建立索引方式
2、 修改JVM配置新增新生代大小和强制GC回收机制
3、 因为框架设计问题,公告栏展现只展现最近时间前5笔数据;如果需要看详细信息点击”更多”在触发后台业务交易,进行查看详细信息;
通过优化后,100用户单点登录并发压力测试,应用服务器资源使用率,如下图,CPU使用均衡,均低于30%,网络带宽使用率低于20M,数据库资源使用率也都低于指标范围,
本次压力测试技术选型中的性能测试,涉及交易功能包含,登录退出、管理交易、流程交易,也对软硬件、操作系统参数、应用参数、代码、数据库产品对比、网络配置、浏览器选型等进行性能测试监控诊断分析优化进行对比,如下:
本篇文章成文仓促,从选型的角度看,建议针对各种满足不同功能需求的技术框架进行选型,当面临技术选型时,首先考虑的要对产品架构进行合理的验证评估,例如性能测试,也要根据不同的场景进行验证测试,最终选择一款合适的框架
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞4
添加新评论0 条评论