溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Web服務器中Tomcat高級優(yōu)化的方法是什么

發(fā)布時間:2021-12-31 16:35:20 來源:億速云 閱讀:127 作者:iii 欄目:服務器

這篇文章主要講解了“Web服務器中Tomcat高級優(yōu)化的方法是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Web服務器中Tomcat高級優(yōu)化的方法是什么”吧!

Tomcat之JVM內(nèi)存查看

此處我以tomcat6和tomcat7來進行講解,tomcat7+ 配置、操作方法類似。

  • Tomcat6的User配置:

Web服務器中Tomcat高級優(yōu)化的方法是什么

Tomcat6配置

  • Tomcat7的User配置:

Web服務器中Tomcat高級優(yōu)化的方法是什么

Tomcat7配置

  • 上述設置完成后:

本地訪問 /localhost:8080/manager/status

Web服務器中Tomcat高級優(yōu)化的方法是什么

未優(yōu)化前信息

Tomcat之啟動優(yōu)化

  • Linux中修改catalina.sh文件,windows中修改catalina.bat文件;內(nèi)容如下:

Web服務器中Tomcat高級優(yōu)化的方法是什么

export JAVA_OPTS="

-server

-Xms1600M

-Xmx1600M

-Xss512k

-XX:+AggressiveOpts

-XX:+UseBiasedLocking

-XX:PermSize=128M

-XX:MaxPermSize=256M

-XX:+DisableExplicitGC

-XX:MaxTenuringThreshold=31

-XX:+UseConcMarkSweepGC

-XX:+UseParNewGC

-XX:+CMSParallelRemarkEnabled

-XX:+UseCMSCompactAtFullCollection

-XX:LargePageSizeInBytes=128m

-XX:+UseFastAccessorMethods

-XX:+UseCMSInitiatingOccupancyOnly

-Djava.awt.headless=true"

  • 檢查是否生效

Web服務器中Tomcat高級優(yōu)化的方法是什么

Tomcat之并發(fā)優(yōu)化

  • 修改位置:

/opt/tomcat7/conf下的server.xml文件中<Connector>節(jié)點的配置優(yōu)化,一定先備份。

Web服務器中Tomcat高級優(yōu)化的方法是什么

  • 標準版優(yōu)化:

<Connector port="8080"

protocol="org.apache.coyote.http11.Http11NioProtocol"

maxThreads="600"

minSpareThreads="100"

maxSpareThreads="500"

acceptCount="700"

connectionTimeout="20000"

redirectPort="8443" />

  • 復雜版優(yōu)化:

<Connector port="8080"

protocol="HTTP/1.1"

URIEncoding="UTF-8"

minSpareThreads="25"

maxSpareThreads="75"

enableLookups="false"

disableUploadTimeout="true"

connectionTimeout="20000"

acceptCount="300"

maxThreads="300"

maxProcessors="1000"

minProcessors="5"

useURIValidationHack="false"

compression="on"

compressionMinSize="2048"

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

redirectPort="8443"/>

Tomcat之內(nèi)存優(yōu)化

錯誤排查:

查看%TOMCAT_HOME%\logs文件夾下,日志文件是否有內(nèi)存溢出錯誤

錯誤提示一:java.lang.OutOfMemoryError: Java heap space

  • 產(chǎn)生原因:

Tomcat默認可以使用的內(nèi)存為128MB,在較大型的應用項目中,這點內(nèi)存是不夠的,有可能導致系統(tǒng)無法運行。

常見的問題是報Tomcat內(nèi)存溢出錯誤,Out of Memory(系統(tǒng)內(nèi)存不足)的異常,從而導致客戶端顯示500錯誤,

一般調(diào)整Tomcat的使用內(nèi)存即可解決此問題。

  • 解決辦法:

Windows環(huán)境下修改:

“%TOMCAT_HOME%\bin\ catalina.bat ”文件,在文件開頭增加如下設置:

JAVA_OPTS=-Xms2048m -Xmx2048m

Linux環(huán)境下修改:

“%TOMCAT_HOME%\bin\ catalina.sh ”文件,在文件開頭增加如下設置:

JAVA_OPTS=-Xms2048m -Xmx2048m

錯誤提示二:java.lang.OutOfMemoryError: PermGen space

  • 產(chǎn)生原因

PermGen space的全稱是Permanent Generation space,是指內(nèi)存的永久保存區(qū)域,這塊內(nèi)存主要是被JVM存放Class和Meta信息的,Class在被Loader時就會被放到PermGen space中,它和存放類實例(Instance)的Heap區(qū)域不同,GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理,所以如果你的應用中有很CLASS的話,就很可能出現(xiàn)PermGen space錯誤,這種錯誤常見在web服務器對JSP進行pre-compile的時候。如果你的WEB APP下都用了大量的第三方jar, 其大小超過了jvm默認的大小(4M)那么就會產(chǎn)生此錯誤信息了 。

  • 解決辦法:

Windows環(huán)境下修改:

“%TOMCAT_HOME%\bin\ catalina.bat ”文件,在文件開頭增加如下設置:

set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m - XX:MaxPermSize=256m

Linux環(huán)境下修改:

“%TOMCAT_HOME%\bin\ catalina.sh ”文件,在文件開頭增加如下設置:

export JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m XX:MaxPermSize=256m

windows中修改位置:

Web服務器中Tomcat高級優(yōu)化的方法是什么

Apache的ab壓力測試

  • 下載httpd-2.2.29.tar.gz包

  • /opt下面解壓:httpd-2.2.29.tar.gz

  • 根目錄/下:

mkdir -p /usr/local/web/apache

  • /opt下進入httpd-2.2.29文件夾:cd httpd-2.2.29

  • 安裝

./configure --prefix=/usr/local/web/apache --enable-shared=max --enable-module=rewirte --enable-module=so

make

make install

ab壓力測試開始:

  • 進入/usr/local/web/apache/bin目錄下,執(zhí)行以下命令:

ab -n1000 -c100 /localhost:8080/

  • 報告說明

Web服務器中Tomcat高級優(yōu)化的方法是什么

Web服務器中Tomcat高級優(yōu)化的方法是什么

感謝各位的閱讀,以上就是“Web服務器中Tomcat高級優(yōu)化的方法是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Web服務器中Tomcat高級優(yōu)化的方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI