背景介绍
----------------------------------------------
金融行业的核心账务系统。
中间件:Weblogic + Tuxedo
数据库:Oracle Rac
负载特点:晚上并发量及业务量都很大,集中处理账务业务,计算量非常大。
服务器配置:IBM 小型机,应用服务器和数据库服务器的资源配置3:2。
测试结果:压力到极限之后,应用服务器的CPU资源几乎到了99%,而数据库服务器的CPU和内存资源利用率才到80%。经调查发现,应用服务器的JVM调用并没有做到及时释放及时回收,导致大量Java进程占用资源不能及时释放。
不知道各位兄弟姐妹是否遇到过这样的应用,遇到多这样的场景?你们是如何处理的?是应用的缺陷?还是说服务器类型和应用的协同的契合度不够?
java的常见问题,开发没有调优和完善,就会出现这样的问题。还有一个方案就是将业务部署在虚拟机上,多台物理机组建虚拟化资源池,配置为按需动态扩展,资源不足会自动增加cpu资源,高峰业务处理完会自动降回,防止瓶颈出现
应用服务器此类问题比较普遍,表现特征就是内存使用率较高,CPU占用高到是不太多见。一从应用代码和java两方面去调整优化.二针对系统层面进行memory方面的优化调整.
收起应用服务器的JVM调用并没有做到及时释放及时回收,导致大量Java进程占用资源不能及时释放
这应该和你的核心账务系统的软件代码有关系,JVM的调用在程序代码中会有很好的处理机制,
类似于应用不停的连接数据库,但是没有Close连接一样,导致数据库资源浪费
收起