天天看點

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