压力测试与系统调优

  最近用loadrunner对开发的系统进行了压力测试,考察系统的性能,是否可以应对客户的需要,并通过jconsole监控应用系统的各项技术指标数据,进面对系统参数进行了优化。

      1、 对Web应用服务器端的性能监视可以使用JDK5版以后自带的监控软件JConsole,可以满足简单的性能监控需要,我的服务端的环境为window + jdk 6 + tomcat 6 + mysql,为了能够监控Tomcat服务器的运行性能,需要在批处理文件catalina.bat中加入以下设置:

 
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port="9004" -Dcom.sun.management.jmxremote.authenticate="false" -Dcom.sun.management.jmxremote.ssl="false"

        2、Tomcat服务器启动以后,然后启动JConsole,就新建连接中的本地进程中的tomcat的启动进程,选择后点连接按钮:

 

      3、 LoadRunner的设置可以查看我的另一文章:通过压力测试排查Bug(一)--测试过程

      4、一个测试实例,以下是LoadRunner的测试图示与对应的服务端性能监控图示:

 

 

5、通过监控服务器信息,进行了系统参数的优化:

        首先优化了Java VM参数:

  

JAVA_OPTS=-server -Xms150m -Xmx220m -Xss128k -XX:MaxNewSize=256m -XX:PermSize=64M -XX:MaxPermSize=256m

         原来设置为"-Xms512m -Xmx768m",现在看来没有必要设置如此之高,如上设置即可,同时垃圾回收更及时了。

         再就是优化了Tomcat的线程池启设置,配置在server.xml文件中,对以下几个参数进行具体的调整:

maxThreads:Tomcat可创建的最大线程数;

acceptCount:如果当前可用线程数为0,则将请求放入处理队列中。这个值限定了请求队列的大小,超过这个数值的请求将不予处理。

connectionTimeout:网络连接超时数,单位毫秒。

minSpareThreads:如果当前没有空闲线程,且没有超过maxThreads,一次性创建的空闲线程数量。Tomcat初始化时创建的线程数量也由此值设置。

maxSpareThreads:一旦创建的线程超过此数值,Tomcat会关闭不再需要的线程。

线程数可以大致上用 “同时在线人数*每秒用户操作次数*系统平均操作时间” 来计算。

具体设置如下:

<Connector port="80" maxThreads="256" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
原文地址:https://www.cnblogs.com/muyuge/p/6152692.html