记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. Apache 4.x HttpClient

    public static Map callRequest(String requestUrl, Method method, Map<String, String> data) thro ...

  2. day20作业

    1.下面这段代码的输出结果将是什么?请解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent): ...

  3. unity 初始化数据存储问题

    在用unity进行开发的时初始化的数据和中间实时生成的数据存储不同,初始化文件数据建议安放在asset-StreamingAssets文件下,需要时读取取来.运行时所需的实时文件或数据持久化的xml文 ...

  4. django-模板之extends(三)

    /book/base.html <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  5. rem辅助式响应布局

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. js实现一个简单的链式操作

    如何实现一个链式操作 function person() {} person.prototype = { setname: function(name) { this.name = name retu ...

  7. Mycat分布式数据库架构解决方案--Mycat实现读写分离

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 安装完 ...

  8. python基础-流程控制(if,while,for)

    今日内容总结 --流程控制(if,while,for) if:用来判断事物的对错.真假.是否执行.根据不同的情况判断,条件满足执行某条件下的语句 语法结构(3种) # 第一种,只有if结构.条件表达式 ...

  9. (大模拟紫题) Luogu P1953 易语言

    原题链接:P1953 易语言 (我最近怎么总在做大模拟大搜索题) 分别处理两种情况. 如果只有一个1或0 直接设一个cnt为这个值,每次输入一个新名字之后把数字替换成cnt,最后cnt++即可. 注意 ...

  10. [考试反思]1109csp-s模拟测试106:撞词

    (撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...