天天看点

Linux下Tomcat调优实战Linux下Tomcat调优实战

Linux下Tomcat调优实战

1.上传安装包

  1. yum install lrzsz -y
  2. rz 上传tomcat、jdk8包

2.安装jdk 1.8

  1. cd /usr
  2. mkdir java
  3. 解压

    tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/java/

  4. 配置jdk环境
    1. 编辑文件:vim /etc/profile
    2. 在文件尾部添加:

      JAVA_HOME=/usr/java/jdk1.8.0_144

      export PATH=$JAVA_HOME/bin:$PATH

    3. 重新加载一下文件:

      source /etc/profile

    4. 查看jdk:

      java -version

3.安装tomcat

  1. 解压

    tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/java/

  2. 启动tomcat

    到tomcat的bin目录下执行: ./startup.sh

  3. 查看是否启动成功

    登陆tomcat欢迎界面: http://host:port/,如:http://192.168.13.123:8080/

4.tomcat参数调优:

  1. 启动NIO模式

    修改server.xml里的Connector节点,修改protocol为org.apache.coyote.http11.Http11NioProtocol

    <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   connectionTimeout="20000"
                   redirectPort="8443" />
               
  2. 线程池开启并使用

    去掉注释,添加并调整参数:

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
                maxThreads="800" minSpareThreads="100" maxQueueSize="100" prestartminSpareThreads="true"/>
               
  3. Connector节点中指定线程池,并调整参数
    <Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxHttpHeaderSize="8192"
               maxThreads="1000"
               processorCache="1000"
               acceptCount="1000"
               minSpareThreads="100"
               acceptorThreadCount="8"
               URIEncoding="UTF-8"
               enableLookups="false"
               edirectPort="8443"
               connectionTimeout="120000"
               keepAliveTimeout="120000"
               maxKeepAliveRequests="65535"
               disableUploadTimeout="true"
               />
               

5.配置虚拟目录

  1. 先把war包放到tomcat的webapp下,然后启动,会在war包同级目录下获得同名文件夹
  2. 把该同名文件夹复制到/usr/java下,然后删除tomcat下webapp的war包和同名文件夹
  3. 配置虚拟目录

    真实目录:/usr/java/myweb

    虚拟目录:http://localhost:8080

    虚拟目录映射:

    docBase:代表的是应用的真实路径。

    path:网络访问的虚拟目录名

  4. 启动tomcat

6.Jvm调优相关

  1. 修改文件:bin/catalina.sh
    JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewRatio=2 -XX:MaxTenuringThreshold=50 -XX:+DisableExplicitGC"
               
  2. jps -v

    输出虚拟机进程启动时的JVM参数

  3. jstat -gc 8331 250 20

    监控Java堆状况;每250毫秒查询一次进程8331垃圾收集状况,一共查询20次

  4. jstat -gcutil 8331

    与-gc基本相同,但主要关注已使用空间占总空间的百分比

  5. jmap -dump:format=b,file=xx.bin 8331

    生成一个正在运行java的dump快照文件

  6. VisualVM性能分析

7.压测工具使用Jmeter或者腾讯云WeTest