• 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参数进行调优
  • 相关阅读:
    (转)写好程序注释的十三条建议
    注册表添加NoDrives隐藏盘符(禁用U盘)参数说明
    AJAX实用教程——开篇
    浅谈函数求解与人生
    C#(服务器)与Java(客户端)通过Socket传递对象
    BI开发之——Mdx基础语法(2)
    UML——序列图
    UML——序列图案例总结
    ORM内核原理解析之:延迟加载
    应用程序系统基本设计原则——SOLID
  • 原文地址:https://www.cnblogs.com/F017/p/12456810.html
Copyright © 2020-2023  润新知