性能测试——记XX银行电票系统上线后宕机问题诊断优化
四月份我们公司负责的电票系统上线了,这个系统上线比客户方其他系统上线还特殊,是二期改造项目,旧系统数据还要整合抽取到新系统中继续使用,而且该系统不是增量型方式开发上线的,而且全部开发完后全国上线的,这样开发压力大,测试人员压力也很大,由于环境问题以及在接近上线前客户方还在做需求变更,导致上线后出现了不少缺陷问题,两周后大部分问题还好都得以解决。而在上线前由于多种原因,我们性能测试人员根据项目调研提供的典型交易进行测试发现了不少问题,但是由于开发人员还在忙于需求变更等开发工作,对我们发现的性能问题都没时间加以解决,因此上线不到一周服务器几乎每天都要重启,不是应用服务器宕机就是数据库服务器宕机客户方着急了,在项目组客户方以及项目经理的要求下,我跟他们去客户机房现场查看分析问题。因为生产环境不能像测试环境那边乱DUMP日志也不能开启其他诊断分析工具,重启、修改参数、加监控参数等都是要他们客户方总行领导审批才行,确实对诊断带来很大的不便。没办法数据库问题只能自己写查询性能试图方式和GLANCE等监控方式发现数据库死锁问题是因为全表扫描引起的有些字段索引走法有问题引起的,建议他们对一些表重建索引解决了部分数据库问题,但是很多都是多表链接查询而且都是左链接方式来实现的,这种在生产线确实不能随意乱改,只能建议他们对查询语法进行SQL 改造,项目组接纳了我部分意见解决了部分问题,对于SQL改造只能等后期上版本才能解决,解决了部分数据库问题燃眉之急就行。
而weblogic应用服务器也是频繁宕机,而且差不多到中午就宕机了,根本没办法支持客户方业务人员一天正常上班8个小时之内工作,最多支持4个小时估计就不行了,经日志分析发现频繁报出java.lang.OutOfMemoryError: GC overhead limit exceeded、java.lang.OutOfMemoryError: Java heap space问题。,看了他们的服务器是4C8G两台,4个实例,JVM 配置-Xms1200m -Xmx1200m -XX:MaxPermSize=256m,感觉配置不合理,因为这些是根据客户方提供的参数配置说明给我们公司人员配置的,而这种配置算是公共性的保守配置方法,对不同的应用系统实际状况不同应该加以调整,而且他们项目很多查询一个查询功能点查询的字段很多都是超过40个查询字段有些上八十个很不合理,但是是客户方要求的没办法,而且有些查询数据量很大确是使用前台分页查询,但是这些设计问题一下子没办法解决,客户方要求我能最快想出解决当前问题方法,没办法我只能跟客户方领导说可以通过参数调整解决临时问题,但是只能算是治标不能治本最终问题还是程序设计等问题。在客户方的要求下,给他们提供了最新的参数配置方案“-Xms1024m -Xmx1024m -XX:NewSize=384m -XX:MaxNewSize=384m -XX:PermSize=256m -XX:MaxPermSize=256m “,结果被客户方的总行管理领导否决,原因是年轻代设置太大了,不接受,我就给他们解决了他们项目的特殊情况,他们也请了对SUN JVM和对WEBLOGIC比较熟悉的专家来好像也是不接受我的意见,没办法,不接受我也提供不了其他优化方案了,但是那些高手也没提供出什么好的方案,我还是坚持我的方法因为他们项目很多特殊原因不得不这样调整,而且这也是合理接收参数配置范围,搞不明白他们为什么不采纳。
但是后期问题还是出现,我也跟客户方领导解释了下,我为什么这样配置的想法,可能是没有其他方案了,死马当活马医了,最终采纳我的方案,问题还真到现在都没出现过。但是时间久了肯定还是有问题,我于是推荐他们在没解决程序问题之前,可以写个SHELL脚本定期重启下各个实例,这样可以清除内存回收问题,这种也算是下下之策了。但是起码能保证客户方能上班时间正常使用该系统。
性能测试——记XX银行电票系统上线后宕机问题诊断优化的更多相关文章
- 性能测试——记XX银行保全项目性能问题分析优化
记XX银行保全项目性能问题分析优化 数据库问题也许是大部分性能问题的关注点,但是JAVA应用与数据库交互的关节,JDBC 就像是我们人体的上半身跟下半身的腰椎,支持上半身,协调下半身运动的重要支撑点. ...
- 系统上线后WCF服务最近经常死掉的原因分析总结
前言 最近系统上线完修改完各种bug之后,功能上还算是比较稳定,由于最近用户数的增加,不知为何经常出现无法登录.页面出现错误等异常,后来发现是由于WCF服务时不时的就死掉了.后来就开始分析问题.得到的 ...
- 记-ItextPDF+freemaker 生成PDF文件---导致服务宕机
摘要:已经上线的项目,出现服务挂掉的情况. 介绍:该服务是专门做打印的,业务需求是生成PDF文件进行页面预览,主要是使用ItextPDF+freemaker技术生成一系列PDF文件,其中生成流程有:解 ...
- redis宕机如何解决?如果是项目上线的宕机呢?
我们先来了解一下 bridge网络模式 他会创建一个docker0桥,看完这个我们就会知道redis哨兵机制的端口了. 之后继续研究redis宕机的解决办法! 宕机: 服务器停止服务 如果只有一台r ...
- 【性能测试】Loadrunner12.55(二)-飞机订票系统-脚本录制
1.1 飞机订票系统 Loadrunner 12.55不会自动安装飞机订票系统,要自己手动安装. 我们需要下载Web Tools以及一个小插件strawberry https://marketplac ...
- 【测试工程师面试】 记录XX银行面试
LZ在一个18线小城市做测试,近来想走出自己的舒适区,去做一点不一样的测试工作. 18线地区,测试工作并不多.最好的差不多就是LZ目前待着的公司了.遂决定去魔都闯荡几年,对一个在魔都无房无车无户口的人 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr
目录:一.通过Dapr实现一个简单的基于.net的微服务电商系统 二.通过Dapr实现一个简单的基于.net的微服务电商系统(二)--通讯框架讲解 三.通过Dapr实现一个简单的基于.net的微服务电 ...
- 学生管理系统-火车订票系统 c语言课程设计
概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...
- 电商系统架构总结1(EF)
最近主导了一个电商系统的设计开发过程,包括前期分析设计,框架搭建,功能模块的具体开发(主要负责在线支付部分),成功上线后的部署维护,运维策略等等全过程. 虽然这个系统不是什么超大型的电商系统 数亿计的 ...
随机推荐
- day21作业
1.定义MySQL类 1.对象有id.host.port三个属性 2.定义工具create_id,在实例化时为每个对象随机生成id,保证id唯一 3.提供两种实例化方式,方式一:用户传入host和po ...
- spring整合mybatisplus2.x详解
一丶Mp的配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...
- SOLID原则、设计模式适用于Python语言吗
在阅读 clean architecture的过程中,会发现作者经常提到recompile redeploy,这些术语看起来都跟静态类型语言有关,比如Java.C++.C#.而在我经常使用的pytho ...
- IL2CPP深入详解-总览
导语 该系列将会分为以下几个部分:1. 总览(本文)2. c++代码解析3. 调试c++代码4. 方法调用(一般方法,虚方法等)5. 泛型共享6. 类型与方法的 P/invoke 封装7. 垃圾回收8 ...
- NodeJs 实现 WebSocket 即时通讯(版本二)
服务端代码 websocket.js 'use strict' const WebSocket = require('ws'); const connections = new Map(); cons ...
- mybatis-spring 启动过程和调用过程
mybatis-spring 可以为我们做什么 mybatis框架已经很不错了,它把配置和执行sql的通用过程抽象出来.只要你符合mybatis框架的要求,首先有正确的配置,然后有model,inte ...
- Unity调用Android相册
最近有一个项目有这个需求,让用户上传自己的交易凭证的截图,之前因为对调Android原生的东西不太熟悉,就先放了一边 因为项目已经上线,只不过是该功能未开放而已,那么现在为什么要写这篇博客呢,是因为. ...
- 暑期集训20190807 游戏(game)
[问题描述] 小A 拿到了 n 个数,
- 【 格式化时间(SimpleDateFormat)用法】
将特定字符串转换成Date格式 可以通过 new 一个 SimpleDateFormat 对象,通过对象调用parse方法实现 示例代码: String time = "2019-11-09 ...
- CSPS模拟 84
整场考试就一个字虚 真的啥也不会 T1 80很好打 可是100这鬼畜的数据范围...二分答案? 没做过蚯蚓跪..果然多刷题有好处.. 于是死在80分处 T2 56很好打 可是100这鬼畜....... ...