四月份我们公司负责的电票系统上线了,这个系统上线比客户方其他系统上线还特殊,是二期改造项目,旧系统数据还要整合抽取到新系统中继续使用,而且该系统不是增量型方式开发上线的,而且全部开发完后全国上线的,这样开发压力大,测试人员压力也很大,由于环境问题以及在接近上线前客户方还在做需求变更,导致上线后出现了不少缺陷问题,两周后大部分问题还好都得以解决。而在上线前由于多种原因,我们性能测试人员根据项目调研提供的典型交易进行测试发现了不少问题,但是由于开发人员还在忙于需求变更等开发工作,对我们发现的性能问题都没时间加以解决,因此上线不到一周服务器几乎每天都要重启,不是应用服务器宕机就是数据库服务器宕机客户方着急了,在项目组客户方以及项目经理的要求下,我跟他们去客户机房现场查看分析问题。因为生产环境不能像测试环境那边乱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银行电票系统上线后宕机问题诊断优化的更多相关文章

  1. 性能测试——记XX银行保全项目性能问题分析优化

    记XX银行保全项目性能问题分析优化 数据库问题也许是大部分性能问题的关注点,但是JAVA应用与数据库交互的关节,JDBC 就像是我们人体的上半身跟下半身的腰椎,支持上半身,协调下半身运动的重要支撑点. ...

  2. 系统上线后WCF服务最近经常死掉的原因分析总结

    前言 最近系统上线完修改完各种bug之后,功能上还算是比较稳定,由于最近用户数的增加,不知为何经常出现无法登录.页面出现错误等异常,后来发现是由于WCF服务时不时的就死掉了.后来就开始分析问题.得到的 ...

  3. 记-ItextPDF+freemaker 生成PDF文件---导致服务宕机

    摘要:已经上线的项目,出现服务挂掉的情况. 介绍:该服务是专门做打印的,业务需求是生成PDF文件进行页面预览,主要是使用ItextPDF+freemaker技术生成一系列PDF文件,其中生成流程有:解 ...

  4. redis宕机如何解决?如果是项目上线的宕机呢?

    我们先来了解一下  bridge网络模式 他会创建一个docker0桥,看完这个我们就会知道redis哨兵机制的端口了. 之后继续研究redis宕机的解决办法! 宕机: 服务器停止服务 如果只有一台r ...

  5. 【性能测试】Loadrunner12.55(二)-飞机订票系统-脚本录制

    1.1 飞机订票系统 Loadrunner 12.55不会自动安装飞机订票系统,要自己手动安装. 我们需要下载Web Tools以及一个小插件strawberry https://marketplac ...

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

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

  7. 通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr

    目录:一.通过Dapr实现一个简单的基于.net的微服务电商系统 二.通过Dapr实现一个简单的基于.net的微服务电商系统(二)--通讯框架讲解 三.通过Dapr实现一个简单的基于.net的微服务电 ...

  8. 学生管理系统-火车订票系统 c语言课程设计

    概要: C 语言课程设计一---学生管理系统 使使用 C 语言实现学生管理系统.系统实现对学生的基本信息和考试成绩的 管理.采用终端命令界面,作为系统的输入输出界面.采用文件作为信息存储介质. 功能描 ...

  9. 电商系统架构总结1(EF)

    最近主导了一个电商系统的设计开发过程,包括前期分析设计,框架搭建,功能模块的具体开发(主要负责在线支付部分),成功上线后的部署维护,运维策略等等全过程. 虽然这个系统不是什么超大型的电商系统 数亿计的 ...

随机推荐

  1. C#事件浅淡(1)

    最近在写C#,感觉事件这个机制很好,可是怎么实现自己定义的事件呢?查了资料有的不全有的不完整,有的太深,自己写一个简单的例子. 原则 1,定义一个事件信息类(标准的都继承EventArgs) 2.定义 ...

  2. 使用Java8 Stream API对Map按键或值进行排序

    一.什么是Java 8 Stream 使用Java 8 Streams,我们可以按键和按值对映射进行排序.下面是它的工作原理: 将Map或List等集合类对象转换为Stream对象 使用Streams ...

  3. unity message

    再用unity进行开发过程中,不可避免的用到消息的传递问题,以下介绍几种消息传递的方法: (一)拖动赋值 此方法即为最普通的方法,即把需要引用的游戏物体或者需要引用的组件拖动到相关公有变量的槽上,然后 ...

  4. Flink 从 0 到 1 学习 —— Flink Data transformation(转换)

    toc: true title: Flink 从 0 到 1 学习 -- Flink Data transformation(转换) date: 2018-11-04 tags: Flink 大数据 ...

  5. MySQL的基础与安装

    一.数据库概述 1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 2.数据库的主要特点: ⑴ 实现数据共享        数据共享包含 ...

  6. Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException 异常

    Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException 报此异常是应为有相同的bean ...

  7. 第二十六章 system v消息队列(二)

    msgsnd int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); 作用: 把一条消息添加到消息队列中 参数: msqi ...

  8. [ZJOI2006]碗的叠放

    Description 小H有n个碗需要放进橱柜,她希望将他们叠起来放置.你知道每个碗都是规则的圆柱体,并且都是上宽下窄,你已经测量出了每个碗的两个半径及高,请你帮小H找出一种叠放顺序,使得叠放出来的 ...

  9. Centos7下安装nexus3.x 安装

    1.官网下载unix版本 2.上传到linux系统的/usr/目录下 [root@lmll70op-ne ~]# cd /usr/ [root@lmll70op-ne usr]# ll 3.解压,并重 ...

  10. 如何在vue-cli项目中结合mockjs模拟假数据

    1.前言 在如今前后端分离的开发方式已被广泛采用的今天,前端同学和后端同学各自独立开发,后端提供数据接口,前端调用接口获取数据渲染页面.但是在实际开发中,后端开发由于逻辑相对复杂接口迟迟提供不到位,而 ...