日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Tomcat性能调优及性能测试工具配置

發布時間:2023/12/19 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 Tomcat性能调优及性能测试工具配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

運行環境:Ubuntu server14 64位

Jdk版本:jdk-1.7.0_79

Tomcat版本:apache-tomcat-7.0.63

Tomcat性能調優

1、內存優化

修改tomcat/bin目錄下catalina.sh文件:

JAVA_OPTS=”$JAVA_OPTS -Dfile.encoding=utf-8 -server -Xmx750M -Xms750M -Xss256k

-XX:+UseBiasedLocking -XX:PermSize=64M -XX:MaxPermSize=128M

-XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC

-XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection

-XX:LargePageSizeInBytes=64M -XX:+UseFastAccessorMethods

-XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true”

參數說明:

-server:讓tomcat以server模式運行

-Xmx750M:設置Java虛擬機堆的最大可用內存大小,單位:兆(M)。

-Xms750M:設置Java虛擬機堆得初始值內存大小,單位:兆(M)。此值設置與-Xmx相同,可以避免每次垃圾回收后JVM重新分配內存。

-Xss256k:設置每個線程的棧大小。Jdk1.5以后每個線程棧最大為1M,以前的版本最大為256k,根據項目實際情況設置此值的大小。

-XX:+UseBiasedLocking:啟用一個線程鎖,對線程處理自動進行最優調配。

-XX:PermSize=64M:設置非堆內存初始大小。

-XX:MaxPermSize=128M:設置非堆內存最大值。

-XX:MaxTenuringThreshold=31:設置垃圾的最大年齡。若設置為0,則年輕代對象不經過Survivor區,直接進入年老代,對年老代較多的應用,可提高效率。若設置為一個較大的值,則年輕代對象會在Survivor區進行多次復制,這樣可以增加對象在年輕代的存活時間,既對象在年輕代就被回收的概率。

-XX:+UseConcMarkSweepGC:jdk1.5及以后版本具有的功能,使用是GC估算觸發和heap占用觸發,提高垃圾回收的響應時間。

-XX:+UseParNewGC:對年輕代采用多線程并行回收,提高回收效率。

-XX:+CMSParallelRemarkEnabled:在使用-XX:+UseParNewGC的情況下,減少mark的時間。

-XX:+UseCMSCompactAtFullCollection:使用并發收集器時,開啟對年老代的壓縮。

-XX:LargePageSizeInBytes=64M:指定heap內存頁面大小。

-XX:+UseFastAccessorMethods:原始類型快速優化(get、set方法等)

-XX:+UseCMSInitiatingOccupancyOnly:使用手動定義初始化定義開始CMS收集。

-Djava.awt.headless=true:防止圖標在Linux環境下加載不出來的異常。

2、線程優化

修改tomcat/conf目錄下server.xml文件:

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"

URIEncoding="UTF-8"

maxThreads="500"

minSpareThreads="75"

enableLookups="false"

disableUploadTimeout="true"

acceptCount="300"

compression="on" compressionMinSize="2048"

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

/>

參數說明:

port:tomcat服務啟動端口

connectionTimeout:連接等待時長,單位毫秒

URIEncoding:字符編碼

maxThreads:連接器要創建的請求處理線程的最大數量。若未指定,改屬性默認設置為200。如果使用了execute將忽略連接器的此屬性。

minSpareThreads:始終保持運行的最小線程數。若未指定,默認為10.

enableLookups=”false”:禁用DNS查找,提高性能。

disableUploadTimeout:此標志允許servlet容器在數據上傳時使用不同的連接超時,通常較長。如果沒有指定,該屬性被設置為true,禁用上傳超時。

acceptCount:當所有可能的請求處理線程都在使用,傳入連接請求的最大隊列長度。當隊列滿時收到的任何請求都將被拒絕。默認值為100.

compression=”on”:開啟壓縮功能。

compressionMinSize:啟用壓縮的輸出內容大小。默認2kb。

compressableMimeType:壓縮類型。

3、Tomcat運行模式優化

BIO:阻塞式連接。一個線程處理一個請求,適用于連接數目較小且固定的架構,并發數高時,線程數較多,浪費資源。Tomcat7及其以下版本在Linux系統中默認使用這種方式。Jdk1.4版本以下的唯一選擇。

NIO:非阻塞連接。是jdk1.4及后續版本提供的一種新的I/O操作方式(即java.nio包及其子包),擁有比傳統I/O操作(BIO)更好的并發運行性能,利用java異步IO處理,可以通過少量的線程處理大量的請求。Tomcat8之后在Linux中默認這種方式。

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

connectionTimeout="20000"

redirectPort="8443"

URIEncoding="UTF-8"

maxThreads="500"

minSpareThreads="75"

enableLookups="false"

disableUploadTimeout="true"

acceptCount="300"

compression="on" compressionMinSize="2048"

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

/>

APR:是從操作系統級別來解決異步的IO問題,大幅度的提高性能。

3.1、APR配置

Tomcat要支持APR,必須安裝apr和native,這樣tomcat可以利用apache的apr接口,使用操作系統的部分本地操作,從而提高性能。

3.1.1、準備工作

已安裝jdk和tomcat,且jdk要在1.7版本或以上版本

apr-1.6.5.tar.gz、apr-util-1.6.1.tar.gz、

apr-iconv-1.2.2.tar.gz、tomcat-native.tar.gz、expat_2.0.1.orig.tar.gz

3.1.2安裝apr

上傳apr-1.6.5.tar.gz、apr-util-1.6.1.tar.gz、apr-iconv-1.2.2.tar.gz、expat_2.0.1.orig.tar.gz

到/usr/local/installPackage/tomcat-apr(目錄自己自定義創建)

解壓縮三個文件包:sudo tar -xzvf apr-1.6.5.tar.gz;sudo tar -xzvf apr-util-1.6.1.tar.gz;sudo tar -xzvf apr-iconv-1.2.2.tar.gz

1、進入apr-1.6.5/目錄執行檢測、編譯、安裝:

sudo ./configure && sudo make && sudo make install

2、進入apr-util-1.6.1/目錄執行檢測、編譯、安裝:

sudo ./configure --with-apr=/usr/local/apr && sudo make && sudo make install

若出現以下錯誤提示:是因為缺少expat庫,需先安裝expat。

解壓縮expat_2.0.1.orig.tar.gz包,并進入expat-2.0.1/目錄執行檢測、編譯、安裝:

sudo ./configure && sudo make && sudo make install

再次進入apr-util-1.6.1/目錄執行檢測、編譯、安裝:

sudo ./configure --with-apr=/usr/local/apr && sudo make && sudo make install

若安裝了expat有可能會導致vi命令無法使用

問題描述:

/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0: undefined symbol: XML_SetHashSalt

解決方案:

執行命令:export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu

修改配置文件:vi ~/.bashrc

在末尾處添加:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib/x86_64-linux-gnu

3、進入apr-iconv-1.2.2/目錄執行檢測、編譯、安裝:

sudo ./configure --with-apr=/usr/local/apr && sudo make && sudo make install

3.1.3、安裝tomcat-native

tomcat-native.tar.gz在tomcat/bin目下

解壓縮:sudo tar -xzvf tomcat-native.tar.gz

移動到安裝目錄:tomcat/bin/tomcat-native-1.1.33-src/jni/native

執行檢測、編譯、安裝:

sudo ./configure --with-apr=/usr/local/apr --with-java-home=/usr/local/java/jdk && sudo make && sudo make install

注意:/usr/local/java/jdk目錄是jdk的安裝目錄

若編譯安裝失敗,查看openssl版本看服務器是否已安裝:opensslversion

若未安裝則上傳openssl-1.0.2r.tar.gz安裝包,進行安裝:

解壓縮openssl-1.0.2r.tar.gz并進入openssl-1.0.2r目錄執行:

apt-get purge openssl

./config --prefix=/usr/local --openssldir=/usr/local/ssl

make && make install

./config shared --prefix=/usr/local --openssldir=/usr/local/ssl

make clean

make && make install

3.1.4、修改tomcat運行配置

修改tomcat/conf/server.xml文件:

<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"

connectionTimeout="20000"

redirectPort="8443"

URIEncoding="UTF-8"

maxThreads="500"

minSpareThreads="75"

enableLookups="false"

disableUploadTimeout="true"

acceptCount="300"

compression="on" compressionMinSize="2048"

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

/>

重啟tomcat,并查看tomcat日志,若出現以下錯誤:

修改tomcat/bin/catalina.sh文件:

找到JAVA_OPTS配置,在最后加上:-Djava.library.path=/usr/local/apr/lib

重啟tomcat并查看日志打?。?/p>

出現上述表示tomcat已經是以apr模式運行。

Tomcat性能監控工具VisuaIVM

1、配置

VisualVM是windows jdk自帶的一個軟件,在jdk安裝目錄的bin目錄下。

遠程監控配置,配置JMX管理遠程端的tomcat:

修改遠程端的tomcat/bin/catalina.sh(windows下為catalina.bat)文件:

在JAVA_OPTS后添加:

-Dcom.sun.management.jmxremote(允許使用JMX遠程管理)

-Dcom.sun.management.jmxremote.port=9008(JMX遠程連接端口)

-Dcom.sun.management.jmxremote.authenticate=false(不進行身份認證,任何用戶都可以連接)

-Dcom.sun.management.jmxremote.ssl=false(不使用SSL)

重啟tomcat,打開VisualVM軟件,添加遠程主機ip,在遠程IP上右鍵添加JMX連接。

我使用的是Linux環境,還需修改/etc/hosts文件:

將服務器對應的127.0.0.1的ip改為實際IP地址。

再次使用VisualVM添加JMX遠程連接

然后就可以實時監控tomcat的CUP、內存等數值的變化。

總結

以上是生活随笔為你收集整理的Tomcat性能调优及性能测试工具配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。