记XX银行保全项目性能问题分析优化

数据库问题也许是大部分性能问题的关注点,但是JAVA应用与数据库交互的关节,JDBC 就像是我们人体的上半身跟下半身的腰椎,支持上半身,协调下半身运动的重要支撑点。假如腰椎出问题了,在强壮的上半身或者下半身也是只能说身体瘫痪着。

就如数据库设计很优良或者JAVA应该设计开发代码写得非常优化,但是在JAVA应用代码与数据库之间的桥梁没设计衔接好,彼此之间的数据交互沟通不顺畅,那性能问题还是非常严重的。如资源型的内存泄漏、系统频繁抛出各种异常等现在导致影响系统性能。

前段时间客户方一套系统运行了四年多了,数据库大部分表数据量确实很大 百万以上数据量,而这段时间却频繁内存溢出,需要进行测试诊断问题。该项目是两家公司合作开发设计的,都有性能测试人员,公司要我争取拿下该项目测试。于是过去该项目进行前期的测试调研等工作,当我准备过去写测试计划、测试方案、优化方案时,客户方的领导说另外一家公司在多久前都已经写好类似的文档了,郁闷。

于是我着手开始写这些文档,主要是写优化方案,只能根据平常的优化经验等写出大概的解决方案,但是这样不能对症下药也许客户方不认可,于是我询问了开发设计人员性能问题大概现状描述性,针对性的整理的优化方案;

看了一些代码、日志、设计文档等资料大概明白问题点了,日志设计问题、异常处理问题、数据库设计问题等设计问题。写成文档形式等发送给客户方后,就这样把该项目的测试任务接下来了。其实并不是哪些文档作用多大,只是该项目我以前帮忙优化过问题,那是今年四月份我刚来我们公司,这个项目也是一直出现问题,那时是另外一家公司也就是我们合作该项目公司的人员做的或者说现在跟我们竞争性能测试的公司做的,那时四月份他们测试该项目很长时间, 但是测试过程中一直出现内存溢出一直找不出问题,请了他们公司的专家,好像也是没看出问题点,搁了很久,我们公司老总就让我过去试试看,结果是一些很简单的问题,他们没注意至关注代码问题,所以一直找不出问题,就那样那时那个项目我承接过来测试了一周把问题找出来并说明了优化方案解决了。也许是那时有帮忙解决该问题缘故,这次我写好了哪些文档发给客户方后,客户领导知道是我来负责测试的就直接点名我来做了。

测试工作顺利展开,搭建测试环境、测试需求调研等做好后开始测试。参数调整确实有问题,但是不是主要问题,虽然发现该项目的JVM调整不符合逻辑,但是这个只是指标不治本,第一周工作就先把JVM设置合理性化优化好,第二周测试把部分数据库问题抛出来了,很多是数据库设计不合理以及不走索引等问题,因为这次目的是找出JAVA代码问题,所以数据库问题我暂时优化下不会造成干扰我定位JAVA问题就行。经过两周的普查测试对比,发现公共问题是 应用服务调用数据库数据时出现问题。也就是JDBC死锁问题。

但是经过审核代码发现这个问题以现在的项目组人员没办法优化,因为现在该项目组结项了没有太多人力资源协助优化,这时最郁闷的事情,而且该问题从设计就错了,历史性问题没人敢接或者说这个项目本来是另外一家公司做的,但是那批人员走了,现在虽然有问题谁敢去接,接了优化面积一大片出现故障没人赔得起。这才是我最郁闷的地方。虽然问题是定位清楚也说明优化方法了,但是项目领导心里都清楚这件事情优化的分量。

没办法情况下,我只能最小化优化,最大化调整,看能不能调整部分技术代码,不改变业务实现逻辑方式下暂时解决,看了两天的代码,发现在数据抽取转换时char 转为string 多余了,而且有多家了循环判断,那时也只是猜测。于是改了下,让开发人员帮忙编写成CLASS 给我,重新部署好后进行优化前后测试对比,也许是瞎猫碰到死老鼠,测试前后性能优化对比响应时间从大部分交易响应时间平均6秒多,降为2.5秒以下。

在稳定性测试后发现还有部分内存泄漏,发现是资源调用没释放问题,跟开发人员说怎么改后重新测试,内存使用降低了,但是还是没办法解决,因为最大问题是JDBC的实现方式问题,发了邮件说明问题后,没人敢解决。我写了测试报告说明了问题优化方式后,离开该项目,但是响应时间等问题解决了,内存泄漏问题也不会那么严重了,预计不会每周重启了,至少可以成三到四周了

性能测试——记XX银行保全项目性能问题分析优化的更多相关文章

  1. 性能测试——记XX银行电票系统上线后宕机问题诊断优化

    四月份我们公司负责的电票系统上线了,这个系统上线比客户方其他系统上线还特殊,是二期改造项目,旧系统数据还要整合抽取到新系统中继续使用,而且该系统不是增量型方式开发上线的,而且全部开发完后全国上线的,这 ...

  2. 【Vuejs】335-(超全) Vue 项目性能优化实践指南

    点击上方"前端自习课"关注,学习起来~ 前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 D ...

  3. windows系统与SQL SERVER 2008数据库服务性能监控分析简要

    软件系统性能测试体系流程介绍之windows系统与SQL SERVER 2008数据库服务性能监控分析简要 目前大部分测试人员对操作系统资源.中间件.数据库等性能监控分析都是各自分析各自的监控指标方式 ...

  4. 【测试工程师面试】 记录XX银行面试

    LZ在一个18线小城市做测试,近来想走出自己的舒适区,去做一点不一样的测试工作. 18线地区,测试工作并不多.最好的差不多就是LZ目前待着的公司了.遂决定去魔都闯荡几年,对一个在魔都无房无车无户口的人 ...

  5. 【性能测试】常见的性能问题分析思路(二)案例&技巧

    上一篇介绍了性能问题分析的诊断的基本过程,还没看过的可以先看下[性能测试]常见的性能问题分析思路-道与术,精炼总结下来就是,当遇到性能问题的时候,首先分析现场,然后根据现象去查找对应的可能原因,在通过 ...

  6. 性能测试培训:Ajax接口级性能测试之jmeter版

    性能测试培训:Ajax接口级性能测试之jmeter版   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest认为工具 ...

  7. 记一次SSM项目小结(一)

    记一次SSM项目小结(一) ssm框架 环境配置 服务器配置 解决方法  拦截器重定向到localhost nginx和tomcat中session失效 mybatis的xml文件不生效 数据库用户创 ...

  8. QT项目性能调优小记

    最近的项目用到了QT 5.5,项目在运行过程中出现了一段时间CPU占用率持续25%,并频繁断网的情况,遂决定对项目性能进行优化. 优化工具也是VS2010自带的性能分析工具,具体的使用方法参见:htt ...

  9. 强大的django-debug-toolbar,django项目性能分析工具

    强大的django-debug-toolbar,django项目性能分析工具 给大家介绍一个用于django中debug模式下查看网站性能等其他信息的插件django-debug-toolbar 首先 ...

随机推荐

  1. Spring Cloud 网关服务 zuul 二

    有一点上篇文章忘了 讲述,nacos的加载优先级别最高.服务启动优先拉去配置信息.所以上一篇服务搭建我没有讲述在nacos 中心创建的配置文件 可以看到服务端口和注册中心都在配置文件中配置化 属性信息 ...

  2. 为什么说HttpMessageConverter的顺序非常重要_SpringBoot

    问题描述 系统内配置了,ProtobufJsonFormatHttpMessageConverter和FastJsonHttpMessageConverter. Spring官方内置的默认Messag ...

  3. 四、pymysql模块、索引和慢查询

    目录 一.pymysql模块 (一)如何使用 (二)sql注入问题 二.索引 (一)主键索引 (二)唯一索引 (三)普通索引 (四)联合索引 (五)不会命中索引的情况 (六)explain (七)索引 ...

  4. oc基本控件

    (一)添加UIWindow UIWindow *window1=[[UIWindow alloc] init]; //window.frame=CGRectMake(10, 470, 100, 30) ...

  5. 在windows下用with open 打开html文件报gbk错误

    with open('xx.html'  , 'rb' ,enconding='utf-8')as f:    可能原因是由于HTML是在Linux下开发的,与windons 系统编码不兼容

  6. Mysql 索引类型+索引方法

    MYSQL索引: PRIMARY(唯一且不能为空:一张表只能有一个主键索引). INDEX(普通索引). UNIQUE(唯一性索引). FULLTEXT(全文索引:用于搜索很长一篇文章的时候,效果最好 ...

  7. 给自己网站配置 https,http2 ,gzip压缩

    https 需要购买域名ssl证书 注意事项: 1.要开启HTTP/2协议支持,需要在nginx 1.10以上版本并且需要openssl库的版本在1.0.2及以上编译. 2.http2.0只支持开启了 ...

  8. Python中xml和dict格式转换

    在做接口自动化的时候,请求数据之前都是JSON格式的,Python有自带的包来解决.最近在做APP的接口,遇到XML格式的请求数据,费了很大劲来解决,解决方式是:接口文档拿到的是XML,在线转化为js ...

  9. Chrome插件开发(四)

    在前面我们编写了三个比较实用的插件,在实际工作中,我们还会使用很多其他的插件,比如掘金,Pocket之类的,我们可能需要经常启用或禁用插件或者删除插件,如果每次都要点到更多工具->扩展程序中去做 ...

  10. 洛谷P3121 【[USACO15FEB]审查(黄金)Censoring (Gold)】

    双栈+AC自动机 这题其实跟一道KMP算法的题有一些渊源,它就是这道题的简单板. Clear: 给你两个串A,B,每次在B串中从左到右找串A,并将该子串删除,直到找不到为止,问你能删几次. 样例输入: ...