|
最近在做一个系统的性能调优,之前没怎么做过,又是单枪匹马,最近陷入了困境,下面我总结下我目前的进度和一些系统环境,请有经验的同学指点下迷津。
1、系统环境
这个系统是一个保险领域的企业应用,数据量在千万级。
应用服务器:
SunOneWebServer 6.1, JDK1.4.2, Windows Server 2003
2.8G 单核CPU,3G RAM
数据库服务器:
Sybase 11.2
2.8G 单核CPU, 2G RAM,同时这台服务器上还有其他web应用
网络情况:
100Mbps局域网,但是据说客户目标环境是2Mbps
性能测试工具:
JProfile5, LoadRunner 8
2、目前情况
接手之前就一直在听说这个系统性能有问题,可是如何有问题不知道,客户的性能指标不清楚。
使用LoadRunner进行压力测试,部分功能存在执行时间过长的情况,已经记录作为性能调优的重点。
测试过程中发现这个系统吞吐量比较惊人,平均在200KB/s。
测试过程中发现只要开始系统功能点击,应用服务器的CPU就会处于高负荷。JVM GC也比较频繁。有点怀疑JVM内存参数设置过小,于是加大到1G。测试过程中内存增加依然很迅速,因为加大了JVM内存,所以GC次数有所下降,但是CPU负荷依然。
代码中发现了很多集合类使用了线程安全的实现,即使没有这个必要,怀疑在并发的时候会有性能问题,问题提出,没有领导给出响应。
我很迷茫,看着一堆LoadRunner数据,也不知道该怎么去找性能瓶颈,痛苦啊 |
|