Tomcat优化(压力测试)

一.Tomcat压力测试,通过调整参数以及配置优化Tomcat
   1.部署一个web工程,测试访问
    1.1.1 将SQL脚本执行,生成对应的数据库
     将SQL脚本上传到服务器,通过 cat 脚本.sql | mysql -uroot -p
    1.1.2 部署项目
     找到项目,修改jdbc.properties配置文件
     将该项目上传到Linux系统中Tomcat解压目录下webapps文件夹
    1.1.3 启动Tomcat
     客户端进行访问:http://192.168.7.22:8080/dashboard-web/index
     
   
   2.Jmeter压力测试工具
    解压完成后进入bin目录,双击jmeter.bat启动,启动可以通过Opetions下有个Choose Lanauge选择简体中文
    2.1 新建一个线程组,线程数量为1000,循环次数为10
    2.2 点击线程组邮件新建一个HTTP协议取样器
     采用http协议,地址为linux地址,端口为tomcat8080端口,访问地址为dashboard-web/index
    2.3 新建一个查询结果,点击启动进行测试
    
   3.Tomcat没有进行任何配置的情况下:
    平均请求处理时间:6195
    Error错误率:0.00%
    吞吐量:154/S
   
    3.1 优化方案一:禁用AJP服务
     停止tomcat:切换到bin目录通过./shutdown.sh
     找到tomacat解压目录的conf文件夹下,将server.xml当中的AJP服务注释
     bin目录启动:./startup.sh && tail -f ../logs/catalina.out
     
     测试结果如下:
      平均请求处理时间:5200
      Error错误率:0.00%
      吞吐量:170/S
      
    3.2 优化方案二:启动执行器(线程池)
     测试一:最多线程为500,初始为50
      停止tomcat:切换到bin目录通过./shutdown.sh
      找到tomacat解压目录的conf文件夹下,将server.xml
      
      <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="50" prestartminSpareThreads="true"/>
      <Connector executor="tomcatThreadPool"  port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
       
      
      bin目录启动:./startup.sh && tail -f ../logs/catalina.out
      
      
      平均请求处理时间:4200
      Error错误率:9.30%
      吞吐量:180/S
      
     测试一:最多线程为1000,初始为200
      平均请求处理时间:5000
      Error错误率:1.3%
      吞吐量:165/S
     
     单纯对线程进行提升,是不能够完全提交Tomcat性能
     
     
     测试二:设置最大队列等待个数
      <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="50" prestartminSpareThreads="true" maxQueueSize="100"/>
      <Connector executor="tomcatThreadPool"  port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
          
     测试三:将运行模式该为noi2
      <Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000" redirectPort="8443" />
    
   4.Tomcat优化方案:JVM参数进行优化
    4.1 启用并行垃圾收集器
     修改catalina.sh配置文件
      JAVA_OPTS="-XX:+UseParallelGC -XX:+UseParallelOldGC -Xms64m -Xmx512m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log"
      
     得出结论:年轻代内存分配太小。整个堆内存分配太小
      JAVA_OPTS="-XX:+UseParallelGC -XX:+UseParallelOldGC -Xms128m -Xmx1024m -XX:NewSize=64m -XX:MaxNewSize=256m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log"
  
    
    4.2 启用G1垃圾收集器
     JAVA_OPTS="-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -Xms128m -Xmx1024m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log"
  
   5.Tomcat优化时,要不断的去测试适合当前环境的配置,优化点:1.Tomcat配置     2.JVM参数进行调优
posted @ 2020-03-10 17:01  EXTRA·  阅读(560)  评论(0编辑  收藏  举报