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

    Mybatis使用自定义类型转换Postgresql 主要目的 为了解决从数据库取出来之后再手动转换为javaBean的问题. 主要用mybatis提供的Handler来把处理前置 添加转换类 imp ...

  2. JVM(6) 字节码执行引擎

    编译器(javac)将Java源文件(.java文件)编译成Java字节码(.class文件). 类加载器负责加载编译后的字节码,并加载到运行时数据区(Runtime Data Area) 通过类加载 ...

  3. Vuforia添加虚拟按键

    AR虚拟按键为真实识别图上的按键,通过按键可以实现真实与虚拟之间的按键交流 (一)添加按键 点击target,打开advance,添加虚拟按键,即可在此target下添加虚拟按键 注:虚拟按键无法旋转 ...

  4. Asp.Net Core中配置使用Kindeditor富文本编辑器实现图片上传和截图上传及文件管理和上传(开源代码.net core3.0)

    KindEditor使用JavaScript编写,可以无缝的于Java..NET.PHP.ASP等程序接合. KindEditor非常适合在CMS.商城.论坛.博客.Wiki.电子邮件等互联网应用上使 ...

  5. (Git) 优秀Java,Vue项目推荐

    Java 1.spring-boot-pay 地址:小柒2012/spring-boot-pay 这是一个支付案例,提供了包括支付宝.微信.银联在内的详细支付代码案例,对于有支付需求的小伙伴来说,这个 ...

  6. kali linux 开启配置ssh服务

    1.    一.配置SSH参数 修改sshd_config文件,命令为: vi /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修 ...

  7. Pytorch数据集读入——Dataset类,实现数据集打乱Shuffle

    在进行相关平台的练习过程中,由于要自己导入数据集,而导入方法在市面上五花八门,各种库都可以应用,在这个过程中我准备尝试torchvision的库dataset torchvision.datasets ...

  8. Java抽象类、接口、内部类

    抽象类的概念: 1.Java中可以定义没有方法体的方法,还方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类: 2.如,shape类计算周长和面积的方法无法确定,那么就可以将这样 ...

  9. MySQL 语句执行过程详解

    MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...

  10. Java多线程-CountDownLatch、CyclicBarrier、Semaphore

    上次简单了解了多线程中锁的类型,今天要简单了解下多线程并发控制的一些工具类了. 1. 概念说明: CountDownLatch:相当于一个待执行线程计数器,当计数减为零时表示所有待执行线程都已执行完毕 ...