tomcat基本優化

Tomcat默認的配置已是通過優化的了,留給咱們可優化的空間很小,我
們主要能調整的是:跟具體使用場景相關的設置,大體有:
1:合理分配Tomcat須要的內存
    這個是在啓動Tomcat的時候設置catalina.sh中的JAVA_OPTS,常見設置以下:javascript

(1)-server:啓用JDK的Server版
(2)-Xms:虛擬機初始化時的最小內存
(3)-Xmx:虛擬機可以使用的最大內存(建議到物理內存的80%)
(4)-XX:PermSize:持久代初始值
(5)-XX:MaxPermSize:持久代最大內存(默認是32M)
(6)-XX:MaxNewSize:新生代內存的最大內存(默認是16M)
說明:
(1)通常設置-Xms、-Xmx相等以免在每次GC後調整堆的大小。由於默認空餘堆內存小於40%
時,JVM就會增大堆直到-Xmx的最大限制;空餘堆內存大於70%時,JVM會減小堆直到-Xms的
最小限制。
(2)察看配置是否生效:jmap -heap tomcat的進程號
2:Tomcat自己的配置優化
在server.xml中的<Connector>中配置,常見設置以下:
(1)maxConnections :最大鏈接數,對BIO模式,默認等於maxThreads ;對NIO默認10000;
對APR/native默認8192
(2)maxThreads:最大線程數,即同時處理的任務個數,默認值爲200
(3)acceptCount:當處理任務的線程數達到最大時,接受排隊的請求個數,默認100
(4)minSpareThreads:最小空閒線程數,默認10
(5)compression :設置是否開啓GZip壓縮css

(6)compressableMimeType:哪些類型須要壓縮,默認是text/html,text/xml,text/plain
(7)compressionMinSize:啓用壓縮的輸出內容大小,默認爲2048
(8)enableLookups:是否反查域名,爲了提升處理能力,應設置爲false
(9)connectionTimeout:網絡鏈接超時,單位毫秒。設置爲-1 表示永不超時,一般可設置
爲2000毫秒。
說明:
(1)若是要加大併發鏈接數,應同時加大maxThreads和acceptCount,能夠兩個設置同樣
(2)WebServer容許的最大鏈接數還受制於操做系統的內核參數設置,可經過ulimit -a 查看
(3)若是配置了<Executor>,在<Connector>中經過executor屬性指定參照<Executor>,那麼
<Connector>中關於線程的配置失效,以<Executor>中配置爲準
3:關於BIO/NIO/APR
(1)BIO是最穩定最老的一個鏈接器,是採用阻塞的方式,意味着每一個鏈接線程綁定到每一個
Http請求,直到得到Http響應返回,若是Http客戶端請求的是keep-Alive鏈接,那麼這些
鏈接也許一直保持着直至達到timeout時間,這期間不能用於其它請求。
(2)NIO是使用Java的異步IO技術,不作阻塞,要使用的話,直接修改server.xml裏的
Connector節點,修改protocol爲:
protocol="org.apache.coyote.http11.Http11NioProtocol"html

(3)APR是使用原生C語言編寫的非堵塞I/O,可是須要安裝apr和native,直接啓動就支持
apr,能大幅度提高性能。使用時指定protocol爲
protocol=「org.apache.coyote.http11.Http11AprProtocol」 。
能夠到http://apr.apache.org/download.cgi去下載,大體的安裝步驟以下:
A:安裝apr
./configure --prefix=/usr/local/apr
make make install
B:安裝apr-iconv
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
make make install
C:安裝apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apriconv=/
usr/local/apr-iconv/bin/apriconv
make make install
D:安裝tomcat-native ,就在Tomcat的bin下自帶
tar zxvf tomcat-native.tar.gz
cd tomcat-native-1.1.29-src/jni/native
./configure --with-apr=/usr/local/apr
make make installjava

E:設置apr 的環境變量
進入Tomcat的bin路徑下,打開catalina.sh,在文件的#!/bin/sh下添加以下內容:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib export LD_LIBRARY_PATH
這樣就只是給這個TOMCAT添加了APR,不破壞其它TOMCAT的配置
G:從新啓動Tomcat,查看日誌信息,應該有相似以下的信息:
org.apache.catalina.core.AprLifecycleListener.init Loaded APR based Apache
Tomcat Native library 1.1.29 using APR version 1.5.0.
參考配置以下:
<Connector port="8080" protocol=" org.apache.coyote.http11.Http11AprProtocol "
URIEncoding="UTF-8"
maxConnections="10000"
maxThreads="2000"
acceptCount="2000"
minSpareThreads="100"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
enableLookups="false"
disableUploadTimeout="true"
connectionTimeout="20000"
redirectPort="8443" />apache

相關文章
相關標籤/搜索