淺談Tomcat服務(wù)器優(yōu)化方法

對于JavaWeb開發(fā)人員而言,Tomcat已成為默認(rèn)的web服務(wù)器,但是在生產(chǎn)環(huán)境下使用Tomcat部署應(yīng)用糖耸,我們?nèi)绻捎肨omcat默認(rèn)的配置狮崩,尤其是內(nèi)存和線程的配置蛛勉,其配置都很低,容易成為性能瓶頸睦柴,所以我們需要對Tomcat服務(wù)器進(jìn)行優(yōu)化诽凌,提升其運行性能,下面我們一起來看看Tomcat如何優(yōu)化坦敌?


一侣诵、Tomcat內(nèi)存優(yōu)化,啟動時告訴JVM需要多大內(nèi)存(調(diào)優(yōu)內(nèi)存是最直接的方式)

Windows 下的 catalina.bat

Linux 下的 catalina.sh

在該文件中配置jvm的內(nèi)存空間狱窘,如: JAVA_OPTS='-Xms256m -Xmx512m'

-Xms<size> JVM初始化堆的大小

-Xmx<size> JVM堆的最大值杜顺,實際參數(shù)大小根據(jù)服務(wù)器配置或者項目具體設(shè)置;


二蘸炸、Tomcat 線程優(yōu)化 在server.xml中配置

比如:

connectionTimeout="20000" ?/>

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

minSpareThreads="X" 初始化X個連接

maxSpareThreads="X" 表示如果最多可以有X個線程躬络,一旦超過X個,則會關(guān)閉不在需要的線程

acceptCount="X" 當(dāng)同時連接的人數(shù)達(dá)到maxThreads時,還可以排隊,隊列大小為X.超過X就不處理


三、Tomcat IO 優(yōu)化

1:同步阻塞IO(JAVA BIO) 同步并阻塞搭儒,服務(wù)器實現(xiàn)模式為一個連接一個線程(one connection one thread 想想都覺得恐怖穷当,線程可是非常寶貴的資源)越锈,當(dāng)然可以通過線程池機(jī)制改善.

2:JAVA NIO 又分為同步非阻塞IO,異步阻塞IO與BIO最大的區(qū)別one request one thread.可以復(fù)用同一個線程處理多個connection(多路復(fù)用).

3:異步非阻塞IO(Java NIO2又叫AIO) 主要與NIO的區(qū)別主要是操作系統(tǒng)的底層區(qū)別膘滨,可以做個比喻:比作快遞甘凭,NIO就是網(wǎng)購后要自己到官網(wǎng)查下快遞是否已經(jīng)到了(可能是多次),然后自己去取快遞火邓;AIO就是快遞員送貨上門了(不用關(guān)注快遞進(jìn)度)丹弱。

BIO方式適用于連接數(shù)目比較小且固定的架構(gòu),這種方式對服務(wù)器資源要求比較高铲咨,并發(fā)局限于應(yīng)用中躲胳,JDK1.4以前的唯一選擇,但程序直觀簡單易理解.

NIO方式適用于連接數(shù)目多且連接比較短(輕操作)的架構(gòu)纤勒,比如聊天服務(wù)器坯苹,并發(fā)局限于應(yīng)用中,編程比較復(fù)雜摇天,JDK1.4開始支持.

AIO方式使用于連接數(shù)目多且連接比較長(重操作)的架構(gòu)粹湃,比如相冊服務(wù)器,充分調(diào)用OS參與并發(fā)操作泉坐,編程比較復(fù)雜为鳄,JDK7開始支持.

在server.xml中

connectionTimeout="20000"

URIEncoding="UTF-8"

useBodyEncodingForURI="true"

enableLookups="false"

redirectPort="8443" />

實現(xiàn)對Tomcat的IO切換。


四腕让、大殺器APR

APR是從操作系統(tǒng)級別來解決異步的IO問題孤钦,大幅度的提高性能. (http://apr.apache.org/)。

APR(Apache Portable Runtime)是一個高可移植庫纯丸,它是Apache HTTP Server 2.x 的核心偏形,能更好地和其它本地web技術(shù)集成,總體上讓Java更有效率作為一個高性能web服務(wù)器平臺而不是簡單作為后臺容器觉鼻;

在產(chǎn)品環(huán)境中俊扭,特別是直接使用Tomcat做WEB服務(wù)器的時候,應(yīng)該使用Tomcat Native來提高其性能滑凉,如果不配APR统扳,基本上300個線程狠快就會用滿,以后的請求就只好等待.但是配上APR之后畅姊,并發(fā)的線程數(shù)量明顯下降咒钟,從原來的300可能會馬上下降到只有幾十,新的請求會毫無阻塞的進(jìn)來若未;

在局域網(wǎng)環(huán)境測朱嘴,就算是400個并發(fā),也是一瞬間就處理/傳輸完畢,但是在真實的Internet環(huán)境下萍嬉,頁面處理時間只占0.1%都不到乌昔,絕大部分時間都用來頁面?zhèn)鬏敚绻挥肁PR壤追,一個線程同一時間只能處理一個用戶磕道,勢必會造成阻塞,所以生產(chǎn)環(huán)境下用apr是非常必要的.

安裝Apache Tomcat Native Library行冰,直接啟動就支持apr(http://tomcat.apache.org/native-doc/)它本身是基于APR的溺蕉,排除代碼問題Tomcat優(yōu)化到這個層次,可以應(yīng)對大部分性能需求;

最后悼做,優(yōu)化的前提條件是良好的代碼質(zhì)量和設(shè)計疯特。

聲明:本文轉(zhuǎn)自蛙課官網(wǎng)

想獲取更多資訊、更多視頻肛走、面試題答案漓雅,還有各種資源+源碼+工具

就關(guān)注“蛙課網(wǎng)校”公眾號吧朽色!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末邻吞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子纵搁,更是在濱河造成了極大的恐慌吃衅,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腾誉,死亡現(xiàn)場離奇詭異,居然都是意外死亡峻呕,警方通過查閱死者的電腦和手機(jī)利职,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘦癌,“玉大人猪贪,你說我怎么就攤上這事⊙端剑” “怎么了热押?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長斤寇。 經(jīng)常有香客問我桶癣,道長,這世上最難降的妖魔是什么娘锁? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任牙寞,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘间雀。我一直安慰自己悔详,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布惹挟。 她就那樣靜靜地躺著茄螃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪连锯。 梳的紋絲不亂的頭發(fā)上责蝠,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機(jī)與錄音萎庭,去河邊找鬼霜医。 笑死,一個胖子當(dāng)著我的面吹牛驳规,可吹牛的內(nèi)容都是我干的肴敛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼吗购,長吁一口氣:“原來是場噩夢啊……” “哼医男!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捻勉,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤镀梭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后踱启,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體报账,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年埠偿,在試婚紗的時候發(fā)現(xiàn)自己被綠了透罢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡冠蒋,死狀恐怖羽圃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情抖剿,我是刑警寧澤朽寞,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站斩郎,受9級特大地震影響脑融,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜孽拷,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一吨掌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦膜宋、人聲如沸窿侈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽史简。三九已至,卻和暖如春肛著,著一層夾襖步出監(jiān)牢的瞬間圆兵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工枢贿, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留殉农,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓局荚,卻偏偏與公主長得像超凳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子耀态,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359