日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Tomcat內(nèi)存大小具體方法

Tomcat默認可以使用的內(nèi)存為128MB,在較大型的應用項目中,這點內(nèi)存是不夠的,需要調(diào)大,下面為大家講解一下Tomcat內(nèi)存大小具體方法。

成都創(chuàng)新互聯(lián)網(wǎng)站建設公司,提供成都網(wǎng)站建設、網(wǎng)站建設,網(wǎng)頁設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;可快速的進行網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

一、配置

Tomcat/conf/server.xml修改配置


  
   "8080" protocol=
   "org.apache.coyote.http11.Http11NioProtocol"        redirectPort=
   "8443"        URIEncoding=
   "UTF-8"        minSpareThreads=
   "25"        maxSpareThreads=
   "300"        maxThreads=
   "500"        acceptCount=
   "500"        connectionTimeout=
   "30000"        enableLookups=
   "false"/> 

二、參數(shù)說明

maxIdleTime:最大空閑時間,超過這個空閑時間,且線程數(shù)大于minSpareThreads的,都會被回收,默認值1分鐘(60000ms);

minSpareThreads:最小空閑線程數(shù),任何情況都會存活的線程數(shù),即便超過了最大空閑時間,也不會被回收,默認值4;

maxSpareThreads:最大空閑線程數(shù),在最大空閑時間(maxIdleTime)內(nèi)活躍過,此時空閑,當空閑時間大于maxIdleTime則被回收,小則繼續(xù)存活,等待被調(diào)度,默認值50;

maxThreads:最大線程數(shù),大并發(fā)請求時,tomcat能創(chuàng)建來處理請求的最大線程數(shù),超過則放入請求隊列中進行排隊,默認值為200;

acceptCount:當最大線程數(shù)(maxThreads)被使用完時,可以放入請求隊列排隊個數(shù),超過這個數(shù)返回connection refused(請求被拒絕),一般設置和max

Threads一樣,不過這個具體需要根據(jù)自己的應用實際訪問峰值和平均值來權(quán)衡,默認值為100;

connectionTimeout:網(wǎng)絡連接超時,假設設置為0表示永不超時,這樣設置隱患巨大,通常可設置為30000ms,默認60000ms。

Windows Tomcat允許每個進程maxThreads(最大線程數(shù))2000

Linux Tomcat允許每個進程maxThreads(最大線程數(shù))1000

圖解線程池原理

請看下面三種情況

情況1:接受一個請求,此時tomcat起動的線程數(shù)沒有到達maxThreads,tomcat會起動一個線程來處理此請求。

情況2:接受一個請求,此時tomcat起動的線程數(shù)已經(jīng)到達maxThreads,tomcat會把此請求放入等待隊列,等待空閑線程。

情況3:接受一個請求,此時tomcat起動的線程數(shù)已經(jīng)到達maxThreads,等待隊列中的請求個數(shù)也達到了acceptCount,此時tomcat會直接拒絕此次請求,返回connection refused

maxThreads如何配置

一般的服務器操作都包括量方面:1計算(主要消耗cpu),2等待(io、數(shù)據(jù)庫等)

第一種極端情況,如果我們的操作是純粹的計算,那么系統(tǒng)響應時間的主要限制就是cpu的運算能力,此時maxThreads應該盡量設的小,降低同一時間內(nèi)爭搶cpu的線程個數(shù),可以提高計算效率,提高系統(tǒng)的整體處理能力。

第二種極端情況,如果我們的操作純粹是IO或者數(shù)據(jù)庫,那么響應時間的主要限制就變?yōu)榈却獠抠Y源,此時maxThreads應該盡量設的大,這樣才能提高同時處理請求的個數(shù),從而提高系統(tǒng)整體的處理能力。此情況下因為tomcat同時處理的請求量會比較大,所以需要關(guān)注一下tomcat的虛擬機內(nèi)存設置和linux的open file限制。

我在測試時遇到一個問題,maxThreads我設置的比較大比如3000,當服務的線程數(shù)大到一定程度時,一般是2000出頭,單次請求的響應時間就會急劇的增加,百思不得其解這是為什么,四處尋求答案無果,最后我總結(jié)的原因可能是cpu在線程切換時消耗的時間隨著線程數(shù)量的增加越來越大,cpu把大多數(shù)時間都用來在這2000多個線程直接切換上了,當然cpu就沒有時間來處理我們的程序了。以前一直簡單的認為多線程=高效率。。其實多線程本身并不能提高cpu效率,線程過多反而會降低cpu效率。當cpu核心數(shù)

現(xiàn)實應用中,我們的操作都會包含以上兩種類型(計算、等待),所以maxThreads的配置并沒有一個最優(yōu)值,一定要根據(jù)具體情況來配置。最好的做法是:在不斷測試的基礎(chǔ)上,不斷調(diào)整、優(yōu)化,才能得到最合理的配置。

acceptCount的配置,我一般是設置的跟maxThreads一樣大,這個值應該是主要根據(jù)應用的訪問峰值與平均值來權(quán)衡配置的。

如果設的較小,可以保證接受的請求較快相應,但是超出的請求可能就直接被拒絕

如果設的較大,可能就會出現(xiàn)大量的請求超時的情況,因為我們系統(tǒng)的處理能力是一定的。


網(wǎng)頁標題:Tomcat內(nèi)存大小具體方法
網(wǎng)址分享:http://www.5511xx.com/article/cocodgo.html