Tomcat的三種模式及並發最佳化

來源:互聯網
上載者:User

標籤:


Tomcat的運行模式有3種
1、bio
預設的模式,效能非常低下,沒有經過任何最佳化處理和支援.

2、nio
利用java的非同步io護理技術,noblocking IO技術.
想運行在該模式下,直接修改server.xml裡的Connector節點,修改protocol為

<Connector port="80″protocol="org.apache.coyote.http11.Http11NioProtocol"connectionTimeout="20000"URIEncoding=”UTF-8″useBodyEncodingForURI="true"enableLookups="false"redirectPort="8443">

啟動後,就可以生效。

3、apr
從作業系統層級來解決非同步IO問題,大幅度的提高效能。
必須要安裝apr和native,直接啟動就支援apr
修改protocol為org.apache.coyote.http11.Http11AprProtocol

安裝apr

yum -y install apr apr-devel

安裝native
進入tomcat/bin目錄,比如:

cd /usr/local/tomcat/bin/ tar xzfv tomcat-native.tar.gzcd tomcat-native-1.1.20-src/jni/native/ ./configure --with-apr=/usr/bin/apr-1-configmake && make install

安裝完成之後 會出現如下提示資訊

Libraries have been installed in: /usr/local/apr/lib

安裝成功後還需要對tomcat設定環境變數,方法是在catalina.sh檔案中增加1行:

 CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"

修改8080端對應的conf/server.xml

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

啟動tomcat之後,查看日誌會有這一行資訊,說明已經是APR模式啟動了

INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

並發最佳化
1.JVM調優
新增檔案TOMCAT_HOME/bin/setenv.sh如下語句,具體數值視情況而定。

JAVA_OPTS="-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=64m -XX:MaxPermSize=128m"

參數詳解

-Xms JVM初始化堆記憶體大小 -Xmx JVM堆的最大記憶體 -Xss 線程棧大小 -XX:PermSize JVM非堆區初始記憶體配置大小 -XX:MaxPermSize JVM非堆區最大記憶體

建議和注意事項:
-Xms和-Xmx選項設定為相同堆記憶體配置,以避免在每次GC 後調整堆的大小,堆記憶體建議占記憶體的60%~80%;非堆記憶體是不可回收記憶體,大小視項目而定;線程棧大小推薦256k.

32G記憶體配置如下:

JAVA_OPTS="-Xms20480m -Xmx20480m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m"

2.關閉DNS反向查詢
在<Connector port=”8080″ 中加入如下參數

enableLookups="false"

3.最佳化tomcat參數(使用APR)

<Listener className="org.apache.catalina.core.AprLifecycleListener" /> ... <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" //連結逾時時間長度 redirectPort="8443" maxThreads="500" minSpareThreads="20" acceptCount="1000" enableLookups="false" URIEncoding="UTF-8" />

Tomcat的三種模式及並發最佳化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.