java -Xms512m -Xmx512m -jar my.jar
Tomcat默認的配置已是通過優化的了,留給咱們可優化的空間很小,我 們主要能調整的是:跟具體使用場景相關的設置,大體有: javascript
(1)-server:啓用JDK的Server版 (2)-Xms:虛擬機初始化時的最小內存 (3)-Xmx:虛擬機可以使用的最大內存(建議到物理內存的80%) (4)-XX:PermSize:持久代初始值 (5)-XX:MaxPermSize:持久代最大內存(默認是32M) (6)-XX:MaxNewSize:新生代內存的最大內存(默認是16M)
說明:css
(1)通常設置-Xms、-Xmx相等以免在每次GC後調整堆的大小。由於默認空餘堆內存小於40%時,JVM就會增大堆直到-Xmx的最大限制;空餘堆內存大於70%時,JVM會減小堆直到-Xms的最小限制
(2)察看配置是否生效:jmap -heap tomcat的進程號html
(1)maxConnections :最大鏈接數,對BIO模式,默認等於maxThreads ;對NIO默認10000; 對APR/native默認8192 (2)maxThreads:最大線程數,即同時處理的任務個數,默認值爲200 (3)acceptCount:當處理任務的線程數達到最大時,接受排隊的請求個數,默認100 (4)minSpareThreads:最小空閒線程數,默認10 (5)compression :設置是否開啓GZip壓縮 (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>中配置爲準
(1)BIO是最穩定最老的一個鏈接器,是採用阻塞的方式,意味着每一個鏈接線程綁定到每一個 Http請求,直到得到Http響應返回,若是Http客戶端請求的是keep-Alive鏈接,那麼這些 鏈接也許一直保持着直至達到timeout時間,這期間不能用於其它請求。 (2)NIO是使用Java的異步IO技術,不作阻塞,要使用的話,直接修改server.xml裏的 Connector節點,修改protocol爲 : protocol="org.apache.coyote.http11.Http11NioProtocol" (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-apr- iconv=/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 install 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.
一、在bin/catalina.bat文件中加入下面參數,對JVM進行優化,至於這一大駝參數的做用及說明,你們到網上找找,應該有不少的,如:http://www.mzone.cc/article/321.htmljava
set JAVA_OPTS= -server -Xms1000M -Xmx1000M #-Xms與-Xmx設成同樣的值,避免JVM由於頻繁的GC致使性能大起大落 -Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=64M -XX:MaxPermSize=300M -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true
上述這樣的配置,基本上能夠達到:系統響應時間增快,JVM回收速度增快同時又不影響系統的響應率
,JVM內存最大化利用,線程阻塞狀況最小化.apache
修改conf/server.xml文件,把原來tomcat
<Connector port="8080" protocol="HTTP/1.1" />
修改協議,修改最大線程,開啓tomcat的gzip等等網絡
改爲下面的內容併發
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" connectionTimeout="20000" acceptCount="1500" maxThreads="1500" maxProcessors="1000" minProcessors="5" useURIValidationHack="false" compression="on" compressionMinSize="1024" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" redirectPort="8443"/>
長鏈接和短鏈接的性能測試:less
http://blog.csdn.net/ystyaoshengting/article/details/49300003異步
tomcat長鏈接、短鏈接配置及用途:
http://blog.csdn.net/ystyaoshengting/article/details/49512069
何時用長鏈接,短鏈接?(下面博文最後面)
http://www.cnblogs.com/0201zcr/p/4694945.html
Tomcat的四種基於HTTP協議的Connector性能比較:
http://www.cnblogs.com/sunxucool/p/3227366.html
Tomcat 7優化前及優化後的性能對比:
http://my.oschina.net/lianss/blog/272230?fromerr=rcI9PseP#OSC_h2_1