您好,登錄后才能下訂單哦!
這篇文章主要講解了“Web服務器中Tomcat高級優化的方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Web服務器中Tomcat高級優化的方法是什么”吧!
此處我以tomcat6和tomcat7來進行講解,tomcat7+ 配置、操作方法類似。
Tomcat6的User配置:
Tomcat7的User配置:
上述設置完成后:
本地訪問 /localhost:8080/manager/status
Linux中修改catalina.sh文件,windows中修改catalina.bat文件;內容如下:
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"
檢查是否生效
修改位置:
/opt/tomcat7/conf下的server.xml文件中<Connector>節點的配置優化,一定先備份。
標準版優化:
<Connector port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="600"
minSpareThreads="100"
maxSpareThreads="500"
acceptCount="700"
connectionTimeout="20000"
redirectPort="8443" />
復雜版優化:
<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_HOME%\logs文件夾下,日志文件是否有內存溢出錯誤
錯誤提示一:java.lang.OutOfMemoryError: Java heap space
產生原因:
Tomcat默認可以使用的內存為128MB,在較大型的應用項目中,這點內存是不夠的,有可能導致系統無法運行。
常見的問題是報Tomcat內存溢出錯誤,Out of Memory(系統內存不足)的異常,從而導致客戶端顯示500錯誤,
一般調整Tomcat的使用內存即可解決此問題。
解決辦法:
Windows環境下修改:
“%TOMCAT_HOME%\bin\ catalina.bat ”文件,在文件開頭增加如下設置:
JAVA_OPTS=-Xms2048m -Xmx2048m
Linux環境下修改:
“%TOMCAT_HOME%\bin\ catalina.sh ”文件,在文件開頭增加如下設置:
JAVA_OPTS=-Xms2048m -Xmx2048m
錯誤提示二:java.lang.OutOfMemoryError: PermGen space
產生原因
PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域,這塊內存主要是被JVM存放Class和Meta信息的,Class在被Loader時就會被放到PermGen space中,它和存放類實例(Instance)的Heap區域不同,GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理,所以如果你的應用中有很CLASS的話,就很可能出現PermGen space錯誤,這種錯誤常見在web服務器對JSP進行pre-compile的時候。如果你的WEB APP下都用了大量的第三方jar, 其大小超過了jvm默認的大小(4M)那么就會產生此錯誤信息了 。
解決辦法:
Windows環境下修改:
“%TOMCAT_HOME%\bin\ catalina.bat ”文件,在文件開頭增加如下設置:
set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m - XX:MaxPermSize=256m
Linux環境下修改:
“%TOMCAT_HOME%\bin\ catalina.sh ”文件,在文件開頭增加如下設置:
export JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m XX:MaxPermSize=256m
windows中修改位置:
下載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目錄下,執行以下命令:
ab -n1000 -c100 /localhost:8080/
報告說明
感謝各位的閱讀,以上就是“Web服務器中Tomcat高級優化的方法是什么”的內容了,經過本文的學習后,相信大家對Web服務器中Tomcat高級優化的方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。