压力测试与系统调优
最近用loadrunner对开发的系统进行了压力测试,考察系统的性能,是否可以应对客户的需要,并通过jconsole监控应用系统的各项技术指标数据,进面对系统参数进行了优化。
1、 对Web应用服务器端的性能监视可以使用JDK5版以后自带的监控软件JConsole,可以满足简单的性能监控需要,我的服务端的环境为window + jdk 6 + tomcat 6 + mysql,为了能够监控Tomcat服务器的运行性能,需要在批处理文件catalina.bat中加入以下设置:
2、Tomcat服务器启动以后,然后启动JConsole,就新建连接中的本地进程中的tomcat的启动进程,选择后点连接按钮:
3、 LoadRunner的设置可以查看我的另一文章:通过压力测试排查Bug(一)--测试过程
4、一个测试实例,以下是LoadRunner的测试图示与对应的服务端性能监控图示:
5、通过监控服务器信息,进行了系统参数的优化:
首先优化了Java VM参数:
原来设置为"-Xms512m -Xmx768m",现在看来没有必要设置如此之高,如上设置即可,同时垃圾回收更及时了。
再就是优化了Tomcat的线程池启设置,配置在server.xml文件中,对以下几个参数进行具体的调整:
maxThreads:Tomcat可创建的最大线程数;
acceptCount:如果当前可用线程数为0,则将请求放入处理队列中。这个值限定了请求队列的大小,超过这个数值的请求将不予处理。
connectionTimeout:网络连接超时数,单位毫秒。
minSpareThreads:如果当前没有空闲线程,且没有超过maxThreads,一次性创建的空闲线程数量。Tomcat初始化时创建的线程数量也由此值设置。
maxSpareThreads:一旦创建的线程超过此数值,Tomcat会关闭不再需要的线程。
线程数可以大致上用 “同时在线人数*每秒用户操作次数*系统平均操作时间” 来计算。
具体设置如下: