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参数进行调优
  • 相关阅读:
    取得窗口大小和窗口位置兼容所有浏览器的js代码
    一个简单易用的导出Excel类
    如何快速启动chrome插件
    网页表单设计案例
    Ubuntu下的打包解包
    The source file is different from when the module was built. Would you like the debugger to use it anyway?
    FFisher分布
    kalman filter
    Group delay Matlab simulate
    24位位图格式解析
  • 原文地址:https://www.cnblogs.com/F017/p/12456810.html
Copyright © 2011-2022 走看看