Tomcat性能優化:

web應用的併發提升,除了負載均衡。在小企業中也可以通過一些軟件的上的設置來進行一些優化。下面是一些在服務器上修改tomcat參數的優化方法,非常簡單實用!

1、讓Tomcat8 中支持Java語言的特性 NIO(New I/O)

使用NIO在服務器端會有更好的性能,加強服務器端對併發處理的性能。  請注意:很抱歉,在tomcat6在默認的配置選項中是沒有把NIO功能打開。所以很多正在使用Tomcat6的朋友們本以爲能快活的使用上NIO。

而NIO則是使用單線程(單個CPU)或者只使用少量的多線程(多CPU)來接受Socket,而由線程池來處理堵塞在pipe或者隊列裏的請求.這樣的話,只要OS可以接受TCP的連接,web服務器就可以處理該請求。大大提高了web服務器的可伸縮性。

可以在控制檯的啓動信息裏看見,默認狀態下沒有被打開nio配置,啓動時的信息,如下:

2015-2-1 12:59:40org.apache.coyote.http11.Http11Protocol init

信息: Initializing Coyote HTTP/1.1 on http-8080

2015-2-1 12:59:40org.apache.catalina.startup.Catalina load

修改成支持NIO的類型,配置如下

 <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"  

              connectionTimeout="20000"  

               redirectPort="8443" />

進行測試,被打開nio配置,啓動時的信息,如下:

2015-2-1 13:01:01org.apache.tomcat.util.net.NioSelectorPool getSharedSelector

信息: Using a shared selector for servlet write/read

2015-2-1 13:01:01org.apache.coyote.http11.Http11NioProtocol init

信息: Initializing Coyote HTTP/1.1 on http-8080

2、修改Tomcat 8默認的maxThread

打開server.xml可以看到如下配置: 
<Connector port="8080" protocol="HTTP/1.1" 
              connectionTimeout="20000" 
              redirectPort="8443" /> 



修改方法:

 <Connector port="8080" protocol="HTTP/1.1"   

        connectionTimeout="20000"   

               redirectPort="8443" maxThreads="150"/> 

註釋:在tomcat配置文件server.xml中的<Connector ... />配置中,和連接數相關的參數有: 
minProcessors:最小空閒連接線程數,用於提高系統處理性能,默認值爲10 
maxProcessors:最大連接線程數,即:併發處理的最大請求數,默認值爲75 
acceptCount:允許的最大連接數,應大於等於maxProcessors,默認值爲100 
enableLookups:是否反查域名,取值爲:true或false。爲了提高處理能力,應設置爲false 
connectionTimeout:網絡連接超時,單位:毫秒。設置爲0表示永不超時,這樣設置有隱患的。通常可設置爲30000毫秒。 
其中和最大連接數相關的參數爲maxProcessors和acceptCount。如果要加大併發連接數,應同時加大這兩個參數。 

3、大量的併發也意味着大量的服務器資源,所以修改一下tomcat的JVM參數也是必要的,後面我們會提到關於JVM的優化問題。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章