11.21 Tomcat7 1000 併發量配置以及配置優化

來源:https://www.cnblogs.com/renwei/p/4315444.html

首先,

修改tomcat/conf/server.xml配置文件。

Tomcat7 1000 併發量配置以及配置優化

其次,修改tomcat/bin/catalina.bat配置文件為以下。

Tomcat7 1000 併發量配置以及配置優化

主要修改了maxThreads、acceptCount。Google資料說“如果要加大併發連接數,應同時加大這兩個參數。

1、tomcat的線程數量有待商榷。thread太多,導致切換過多,性能下降嚴重。這個數量應該是你單個機器的承載能力, 壓力測試下得出的結果。不可任意加大。一般情況下, 256-512個已經非常高的數值了。

2、JVM參數配置, 你這個會導致嚴重的stop world時間。如果你想應用響應平緩, 一般看你的應用對於臨時內存的需求, 一般來說, -Xmn128-256m就夠了, 這個要看你的停頓時間的計算, 你把gc的收集打印出來,再研究下, 最大停頓時間。這個我的BLOG說的比較詳細。你去看看吧。

3、-Xss128k 這個參數, 建議你設置成256k, 不然容易造成不夠用, 特別是你的程序有比較多的遞歸行為。比如排序。

4、另外如果想提高內存的性能, 你可以看看大內存設置.不是很好操作, 我沒有測試過。

5、在性能提升上, 我建議你使用Linux kernel 2.6.22+版本, JAVA6 是不是32位的不是很要緊。這個提升是非常大的。

32位上, 你對JAVA能配置的內存理解是錯誤的。一般來說1。5G的配置, 都可能導致JVM進程出問題, 這個測試我做過, 一般高壓力運行2-3天后, JVM會CRASH, 我不是很明白為什麼, 有可能JAVA5在CMS的問題導致的。一般建議在32位下配置內存為1280m.

===========================================================

Heap Size 最大不要超過可用物理內存的80%,一般的要將-Xms和-Xmx選項設置為相同堆內存分配 (訪問量比較大時設為一致)。

JVM初始分配的內存由-Xms指定,默認是物理內存的1/64;JVM最大分配的內存由-Xmx指定,默認是物理內存的1/4。默認空餘堆內存小於 40%時,JVM就會增大堆直到-Xmx的最大限制;空餘堆內存大於70%時,JVM會減少堆直到-Xms的最小限制。因此服務器一般設置-Xms、 -Xmx相等以避免在每次GC 後調整堆的大小。

非堆內存分配

JVM使用-XX:PermSize設置非堆內存初始值,默認是物理內存的1/64;由XX:MaxPermSize設置最大非堆內存的大小,默認是物理內存的1/4。

JVM內存限制(最大值)

首先JVM內存限制於實際的最大物理內存(廢話!呵呵),假設物理內存無限大的話,JVM內存的最大值跟操作系統有很大的關係。簡單的說就32位 處理器雖然可控內存空間有4GB,但是具體的操作系統會給一個限制,這個限制一般是2GB-3GB(一般來說Windows系統下為1.5G- 2G,Linux系統下為2G-3G),而64bit以上的處理器就不會有限制了。(使用java命令測試出支持的最大值)。

Tomcat的server.xml中Context元素的以下參數應該怎麼配合適 ?

Tomcat7 1000 併發量配置以及配置優化

(第一種方法)

maxThreads="150" 表示最多同時處理150個連接 ;

minSpareThreads="25" 表示即使沒有人使用也開這麼多空線程等待 ;

maxSpareThreads="75" 表示如果最多可以空75個線程,例如某時刻有80人訪問,之後沒有人訪問了,則tomcat不會保留80個空線程,而是關閉5個空的;

acceptCount="100" 當同時連接的人數達到maxThreads時,還可以接收排隊的連接,超過這個連接的則直接返回拒絕連接。

根據你的配置建議

maxThreads="500"

minSpareThreads="100" 如果你的網站經常訪問量都很大的話,缺省就開比較大

maxSpareThreads="300"

acceptCount="100"

這只是說你的服務器可以支持這麼多用戶,但還要看你安裝了哪些東西,還有你的程序是否足夠高效率。

(第二種方法)

1、如何加大tomcat連接數

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

minProcessors:最小空閒連接線程數,用於提高系統處理性能,默認值為10;

maxProcessors:最大連接線程數,即:併發處理的最大請求數,默認值為75

acceptCount:允許的最大連接數,應大於等於maxProcessors,默認值為100

enableLookups:是否反查域名,取值為:true或false。為了提高處理能力,應設置為false;

connectionTimeout:網絡連接超時,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。通常可設置為30000毫秒。

其中和最大連接數相關的參數為maxProcessors和acceptCount。如果要加大併發連接數,應同時加大這兩個參數。

web server允許的最大連接數還受制於操作系統的內核參數設置,通常Windows是2000個左右,Linux是1000個左右。Unix中如何設置這些參數,請參閱Unix常用監控和管理命令。

tomcat4中的配置示例:

<connector>minProcessors="10" 
maxProcessors="1024"
enableLookups="false"
redirectPort="8443"
acceptCount="1024"
debug="0"
connectionTimeout="30000" />/<connector>

對於其他端口的偵聽配置,以此類推。

2、tomcat中如何禁止列目錄下的文件

在{tomcat_home}/conf/web.xml中,把listings參數設置成false即可,如下:

...

listings

false


分享到:


相關文章: