• tomcat调优


    一、配置tomcat用户

    1.修改tomcat配置文件

    vim conf/tomcat-user.xml

    2.写入如下内容

    <role rolename="manager"/>
    <role rolename="manager-gui"/>
    <role rolename="admin"/>
    <role rolename="admin-gui"/>
    <user username="tomcat" password="tomcat" roles="admin-gui,admin,manager-gui,manager"/>

    *3.如果是tomcat8还需要修改webapps/manager/META-INF/context.xml,把value中的内容注释掉

    <Context antiResourceLocking="false" privileged="true">
    <!‐‐<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1"/>‐‐>
    <Manager sessionAttributeValueClassNameFilter="java.lang.(?:Boolean|Integer|Long|Number|String)|org.apache.catalina.filters.CsrfPreventionFilter$LruCache(?:$1)?|java.util.(?:Linked)?HashMap"/>
    </
    Context>

    4.访问http://localhost:8080,点击Server Status,然后输入用户名:tomcat密码:tomcat

    二、tomcat调优

    1.1禁用AJP

    vim conf/server.xml

    1.2注释该行

    <Connectorport="8009" protocol="AJP/1.3" redirectPort="8443"/>

    2.1使用线程池

    vim conf/server.xml

    2.2打开此注释

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec‐" maxThreads="500" minSpareThreads="50" prestartminSpareThreads="true" maxQueueSize="100"/>

    maxThreads:最大并发数,默认设置200,一般建议在500~1000,根据硬件设施和业务来判断

    minSpareThreads:Tomcat初始化时创建的线程数,默认设置25,仅当prestartminSpareThreads设置为true时生效

    maxQueueSize,最大的等待队列数,超过则拒绝请求

    2.3在Connector中设置executor属性指向上面的执行器

    <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>

    3.使用nio2(tomcat8支持,tomcat7可配置nio)

    <Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000" redirectPort="8443"/>

    4.修改tomcat的bin/catalina.sh。set虚拟机参数

    1.1设置并行垃圾回收器

    JAVA_OPTS="-XX:+UseParallelGC -XX:+UseParallelOldGC -Xms64m -Xmx512m 
    -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps 
    -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log"

    1.2将gc.log上传到gceasy.io查看问题

     

     可以看到MinorGC较多,建议增大年轻代大小。FullGC也较多,建议增大堆内存大小

    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"

    2.设置G1垃圾收集器

    #设置了最大停顿时间100毫秒,初始堆内存128m,最大堆内存1024m
    JAVA_OPTS="-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -Xms128m -Xmx1024m 
    -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps 
    -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log"

    三、使用JMeter测试

    1.JMeter下载地址:http://jmeter.apache.org/download_jmeter.cgi。下载zip包

    2.进入bin目录,找到jmeter.bat文件,双机打开即可启动进入bin目录,找到jmeter.bat文件,双机打开即可启动

     3.添加测试计划

     4.添加线程组,模拟用户并发

     5.设置线程数、单个线程请求时间间隔、每个线程循环请求次数

     

     6.添加http请求

     

    7.添加请求监控,点击运行

    8.查看聚合报告(重点看吞吐量)

     

  • 相关阅读:
    [Tips]:SQL server 2005 Create Assembly Failed
    [Tips]:JavaScript命名空间
    卓有成效的程序员之笔记与实践
    Culture List
    Windows Azure CloudBlobContainer.CreateIfNotExist : One of the request inputs is out of range.
    Failed to add FS to collection at ResourceService.SetResource in Map 3D 2013
    ADO.net DataTable 和Amazon SimpleDB的相互转换
    对MapGuide/AIMS进行压力测试StressTest并进行性能优化
    AIMS/MapGuide API二次开发从入门到精通视频课程系列3
    创建Visual Studio项目模版向导的几篇参考文章
  • 原文地址:https://www.cnblogs.com/naixin007/p/13728670.html
Copyright © 2020-2023  润新知