zoukankan      html  css  js  c++  java
  • 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参数进行调优
  • 相关阅读:
    异常处理的设计和重构学习一
    设计模式之禅之六大设计原则-里氏替换原则
    设计模式之禅之六大设计原则-单一职责原则
    swagger-ui生成api文档并进行测试
    功能强大的swagger-editor的介绍与使用
    swagger-codegen自动生成代码工具的介绍与使用
    Swagger使用教程大全,从入门到精通
    Linux下MySQL的数据文件存放位置
    JUC组件扩展(三):BlockingQueue(阻塞队列)详解
    http_load的安装及使用方法
  • 原文地址:https://www.cnblogs.com/mayuan01/p/12455058.html
Copyright © 2011-2022 走看看