Tomcat性能調優

內容轉載自:java

http://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=2651478294&idx=3&sn=8d72cb9fd39c204ab086cd152f4d90e5&chksm=bd2535698a52bc7f08a24774d854c4bc2da8480fe01f9c7f6b72510dd64b5f837fd99717ea80&mpshare=1&scene=23&srcid=0315lUalUtvkLoSecAog5kwh#rdtomcat

一、JDK內存優化服務器

根據服務器物理內容狀況配置相關參數優化tomcat性能。當應用程序須要的內存超出堆的最大值時虛擬機就會提示內存溢出,而且致使應用服務崩潰。所以通常建議堆的最大值設置爲可用內存的最大值的80%。 Tomcat默承認以使用的內存爲128MB,在較大型的應用項目中,這點內存是不夠的,須要調大。網絡

Tomcat默承認以使用的內存爲128MB,併發

Windows下,在文件/bin/catalina.bat,jvm

Unix下,在文件/bin/catalina.sh的前面,socket

增長以下設置:性能

JAVA_OPTS=’-Xms【初始化內存大小】 -Xmx【可使用的最大內存】 -XX:PermSize=64M -XX:MaxPermSize=128m’ 須要把幾個參數值調大。例如: JAVA_OPTS=’-Xms256m -Xmx512m’ 表示初始化內存爲256MB,可使用的最大內存爲512MB。優化

參數詳解線程

-server  啓用jdk 的 server 版;
-Xms    java虛擬機初始化時的最小內存;
-Xmx    java虛擬機可以使用的最大內存;
-XX:PermSize    內存永久保留區域
-XX:MaxPermSize   內存最大永久保留區域 
-Xmn    jvm最小內存

32G 內存配置示例:

JAVA_OPTS="$JAVA_OPTS  -Xms10g -Xmx10g -XX:PermSize=1g -XX:MaxPermSize=2g -Xshare:off -Xmn1024m

二、tomcat線程優化

在tomcat配置文件server.xml中的配置中,和鏈接數相關的參數有:

maxThreads: Tomcat使用線程來處理接收的每一個請求。這個值表示Tomcat可建立的最大的線程數。默認值150。

acceptCount: 指定當全部可使用的處理請求的線程數都被使用時,能夠放處處理隊列中的請求數,超過這個數的請求將不予處理。默認值10。

minSpareThreads: Tomcat初始化時建立的線程數。默認值25。

maxSpareThreads: 一旦建立的線程超過這個值,Tomcat就會關閉再也不須要的socket線程。默認值75。

enableLookups: 是否反查域名,默認值爲true。爲了提升處理能力,應設置爲false

connnectionTimeout: 網絡鏈接超時,默認值60000,單位:毫秒。設置爲0表示永不超時,這樣設置有隱患的。一般可設置爲30000毫秒。

maxKeepAliveRequests: 保持請求數量,默認值100。 bufferSize: 輸入流緩衝大小,默認值2048 bytes。

compression: 壓縮傳輸,取值on/off/force,默認值off。 其中和最大鏈接數相關的參數爲maxThreads和acceptCount。若是要加大併發鏈接數,應同時加大這兩個參數。

32G 內存配置示例:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000" 
maxThreads="1000" 
minSpareThreads="60"
maxSpareThreads="600" 
acceptCount="120" 
redirectPort="8443" 
URIEncoding="utf-8"/>
相關文章
相關標籤/搜索