對于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)化,提升其運(yùn)行性能,下面我們一起來看看Tomcat如何優(yōu)化?
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的呂梁網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!一、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è)計。
寫在最后:
碼字不易看到最后了,那就點個關(guān)注唄,只收藏不點關(guān)注的都是在耍流氓!
關(guān)注并私信我“架構(gòu)”,免費(fèi)送一些Java架構(gòu)資料,先到先得!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享題目:淺談Tomcat服務(wù)器優(yōu)化方法-創(chuàng)新互聯(lián)
本文路徑:http://jinyejixie.com/article18/cshpdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站維護(hù)、標(biāo)簽優(yōu)化、服務(wù)器托管、網(wǎng)站設(shè)計、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容