性能测试——记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)
最近主导了一个电商系统的设计开发过程,包括前期分析设计,框架搭建,功能模块的具体开发(主要负责在线支付部分),成功上线后的部署维护,运维策略等等全过程. 虽然这个系统不是什么超大型的电商系统 数亿计的 ...
随机推荐
- 基于 HTML5 + Canvas 实现楼宇自控系统
前言 楼宇自控是指楼宇中电力设备,如电梯.水泵.风机.空调等,其主要工作性质是强电驱动.通常这些设备是开放性的工作状态,也就是说没有形成一个闭环回路.只要接通电源,设备就在工作,至于工作状态.进程.能 ...
- new Date插入mysql数据库时多了一秒
在使用new Date() 插入数据库时,查询出来比实际多了一秒,mysql 表字段设置为datetime类型,当时间精确到秒时,如果毫秒大于500时,会自动进位. 解决方法为格式化后再插入数据库.
- 基于Java的开源爬虫框架WebCollector的使用
一.WebCollector介绍 WebCollector是一个无须配置.便于二次开发的JAVA爬虫框架(内核),它提供精简的的API,只需少量代码即可实现一个功能强大的爬虫. WebCollecto ...
- (二)与animation播放对比
animation播放动画 1.播放默认动画 直接将动画拖入动画对象animation组件的animation变量中,然后加入如下代码既可以播放(此处采用toggle控制动画的播放) public A ...
- sqlite复制表
(1)复制表,并把原表的 所有记录都复制到新表里. CREATE TABLE newTb AS SELECT * FROM oldTb (2)只复制表结构,不复制数据到新表里. 注:该语句无法复制关键 ...
- xtrabackup备份原理及流式备份应用
目录 xtrabackup备份原理及流式备份应用 0. 参考文献 1. xtrabackup 安装 2. xtrabackup 备份和恢复原理 2.1 备份阶段(backup) 2.2 准备阶段(pr ...
- django & celery - 关于并发处理能力和内存使用的小结
背景 众所周知,celery 是python世界里处理分布式任务的好助手,它的出现结合赋予了我们强大的处理异步请求,分布式任务,周期任务等复杂场景的能力. 然鹅,今天我们所要讨论的则是如何更好的在使用 ...
- 前端技术之:使用webpack构建React程序配置方法
package.json中需要引入以下依赖: 开发依赖: "@babel/core": "^7.1.2", "@babel/preset-env& ...
- MIT线性代数:2.消元法
- IIS部署WCF疑难
1.其他信息: 无法激活请求的服务. 可能原因:1. 服务的命名空间和接口的命名空间不一致.2. 传递的参数类型没有打上[DataContract], [DataMember]标签. 2.记得这样: ...