版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Tomcat調(diào)優(yōu)指南 收藏Tomcat調(diào)優(yōu)指南1概述本文檔主要介紹了Tomcat的性能調(diào)優(yōu)的原理和方法。可作為公司技術(shù)人員為客戶Tomcat系統(tǒng)調(diào)優(yōu)的技術(shù)指南,也可以提供給客戶的技術(shù)人員作為他們性能調(diào)優(yōu)的指導手冊。2調(diào)優(yōu)分類由于Tomcat的運行依賴于JVM,從虛擬機的角度我們把Tomcat的調(diào)整分為外部環(huán)境調(diào)優(yōu)和自身調(diào)優(yōu)兩類來描述。2.1外部環(huán)境調(diào)優(yōu)調(diào)整Tomcat運行環(huán)境的操作系統(tǒng)參數(shù)和運行Tomcat的java虛擬機參數(shù)。2.1.1 JAVA虛擬機性能優(yōu)化Tomcat需要依賴Java虛擬機運行。根據(jù)客戶選用的主機的操作系統(tǒng)選擇對應的JDK的版本。無論哪個廠商的JDK,都建議使用最新的版本
2、。虛擬機可通過命令行的方式改變虛擬機使用內(nèi)存的大小。如下表所示有兩個參數(shù)用來設置虛擬機使用內(nèi)存的大小。參數(shù)描述-Xms size JVM初始化堆的大小-Xmx size JVM堆的最大值Tomcat默認可以使用的內(nèi)存為128MB,在較大型的應用項目中,這點內(nèi)存是不夠的,需要調(diào)大。LD1Windows下,在文件tomcat_home/bin/catalina.bat,Unix下,在文件tomcat_home/bin/catalina.sh的前面,增加如下設置:JAVA_OPTS=-Xms【初始化內(nèi)存大小】-Xmx【可以使用的最大內(nèi)存】需要把這個兩個參數(shù)值調(diào)大。例如:JAVA_OPTS=-Xms2
3、56m-Xmx512m表示初始化內(nèi)存為256MB,可以使用的最大內(nèi)存為512MB。另外需要考慮的是Java提供的垃圾回收機制。虛擬機的堆大小決定了虛擬機花費在收集垃圾上的時間和頻度。收集垃圾可以接受的速度與應用有關(guān),應該通過分析實際的垃圾收集的時間和頻率來調(diào)整。如果堆的空間很大,那么完全垃圾收集(FULL GC)就會很慢,但是頻度會降低。如果在客戶系統(tǒng)中把堆的大小和內(nèi)存的需要一致,完全收集就很快,但是會更加頻繁。調(diào)整堆大小的的目的是最小化垃圾收集的時間,以在特定的時間內(nèi)最大化處理客戶的請求。對于SUN和HP等虛擬機,推薦將最小堆大小和最大堆大小設置為同一值,因為這樣可以避免浪費用于時常調(diào)整堆大
4、小所需的VM資源。當然,客戶系統(tǒng)如果用到IBM虛擬機,要特別的注意設置-Xms和-Xmx一樣大小會耽誤垃圾回收的開始直到堆滿,這樣第一次垃圾回收就會變成非常昂貴的操作。推薦把-Xms設置為應用所需的最小值,這樣會產(chǎn)生高效的垃圾回收。2.1.2操作系統(tǒng)性能優(yōu)化以客戶系統(tǒng)為HP-UX為例。HP系統(tǒng)中對Tomcat有影響的參數(shù):其中:max_thread_proc:一個進程所能創(chuàng)建的線程的最大數(shù)nkthread:在系統(tǒng)上同時允許的核心線程的最大數(shù)maxfiles上表給的建議是不是不合適?如果在輸出里看到消息:java.lang.OutOfMemoryError:unable to create ne
5、w native thread,則說明名為max_thread_proc的Unix內(nèi)核設置過小。max_thread_proc是單個進程中的最大線程數(shù)。它必須大到能夠容納Java應用程序中的所有線程以及虛擬機本身中的部分額外線程。查看核心參數(shù):$ulimit-a顯示LD2輸出中的nofiles是指用戶的進程能同時打開的最大文件句柄數(shù)。如果日志中出現(xiàn)two many open files的異常,需要重點檢查這個參數(shù)。coredump參數(shù)是core文件最大值的,限制當進程coredump時將產(chǎn)生core文件的大小不能超過這個最大值。如果在日志文件檢查時,發(fā)現(xiàn)core文件不完整,需要增大這個參數(shù)值。
6、執(zhí)行ulimit-n命令可以設置nofiles參數(shù),執(zhí)行ulimit-c命令設置core文件最大值。如果是在Windows操作系統(tǒng)上使用Tomcat,那么最好選擇服務器版本。因為在非服務器版本上,最終用戶授權(quán)數(shù)或者操作系統(tǒng)本身所能承受的用戶數(shù)、可用的網(wǎng)絡連接數(shù)或其它方面的一些方面都是有限制的。并且基于安全性的考慮,必須經(jīng)常給操作系統(tǒng)打上最新的補丁。2.1.3 Tomcat與其它web服務器整合使用雖然tomcat也可以作web服務器,但其處理靜態(tài)html的速度比不上apache,且其作為web服務器的功能遠不如apache,因此我們想把apache和tomcat集成起來,將html與jsp的功
7、能部分進行明確分工,讓tomcat只處理jsp部分,其它的由apache,IIS等這些web服務器處理,由此大大節(jié)省了tomcat有限的工作線程LD3。2.2自身調(diào)優(yōu)本節(jié)將說明Tomcat性能調(diào)優(yōu)的技巧和方法,這些技巧和方法與操作系統(tǒng)或Java虛擬機的種類無關(guān)。以下方法都是針對Tomcat性能自身調(diào)整的最佳方式。2.2.1禁用DNS查詢當web應用程序要記錄客戶端的信息時,它也會記錄客戶端的IP地址或者通過域名服務器查找機器名轉(zhuǎn)換為IP地址。DNS查詢需要占用網(wǎng)絡,并且包括可能從很多很遠的服務器或者不起作用的服務器上去獲取對應的IP的過程,這樣會消耗一定的時間。為了消除DNS查詢對性能的影響我
8、們可以關(guān)閉DNS查詢,方式是修改server.xml文件中的enableLookups參數(shù)值:不同的tomcat版本稍有不同。Tomcat4 Connector className=org.apache.coyote.tomcat4.CoyoteConnectorport=80minProcessors=5maxProcessors=75enableLookups=falseredirectPort=8443acceptCount=100debug=0connectionTimeout=20000useURIValidationHack=falsedisableUploadTimeout=tr
9、ue/Tomcat5 Connector port=80maxThreads=150minSpareThreads=25maxSpareThreads=75enableLookups=falseredirectPort=8443acceptCount=100debug=0connectionTimeout=20000disableUploadTimeout=true/除非客戶需要連接到站點的每個HTTP客戶端的機器名,否則我們建議在生產(chǎn)環(huán)境上關(guān)閉DNS查詢功能。可以通過Tomcat以外的方式來獲取機器名。這樣不僅節(jié)省了網(wǎng)絡帶寬、查詢時間和內(nèi)存,而且更小的流量會使日志數(shù)據(jù)也會變得更少,顯而易見也
10、節(jié)省了硬盤空間。對流量較小的站點來說禁用DNS查詢可能沒有大流量站點的效果明顯。2.2.2調(diào)整線程數(shù)另外一個可通過應用程序的連接器(Connector)進行性能控制的參數(shù)是創(chuàng)建的處理請求的線程數(shù)。Tomcat使用線程池加速響應速度來處理請求。在Java中線程是程序運行時的路徑,是在一個程序中與其它控制線程無關(guān)的、能夠獨立運行的代碼段。它們共享相同的地址空間。多線程幫助程序員寫出CPU最大利用率的高效程序,使空閑時間保持最低,從而接受更多的請求。Tomcat4中可以通過修改minProcessors和maxProcessors的值來控制線程數(shù)。這些值在安裝后就已經(jīng)設定為默認值并且是足夠使用的,但
11、是隨著站點的擴容而改大這些值。minProcessors服務器啟動時創(chuàng)建的處理請求的線程數(shù)應該足夠處理一個小量的負載。也就是說,如果一天內(nèi)每秒僅發(fā)生5次單擊事件,并且每個請求任務處理需要1秒鐘,那么預先設置線程數(shù)為5就足夠了。但在你的站點訪問量較大時就需要設置更大的線程數(shù),指定為參數(shù)maxProcessors的值。maxProcessors的值也是有上限的,應防止流量不可控制(或者惡意的服務攻擊),從而導致超出了虛擬機使用內(nèi)存的大小。如果要加大并發(fā)連接數(shù),應同時加大這兩個參數(shù)。web server允許的最大連接數(shù)還受制于操作系統(tǒng)的內(nèi)核參數(shù)設置,通常Windows是2000個左右,Linux是1
12、000個左右。在Tomcat5對這些參數(shù)進行了調(diào)整,請看下表:屬性名描述maxThreads Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創(chuàng)建的最大的線程數(shù)。acceptCount指定當所有可以使用的處理請求的線程數(shù)都被使用時,可以放到處理隊列中的請求數(shù),超過這個數(shù)的請求將不予處理。connnectionTimeout網(wǎng)絡連接超時,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。通??稍O置為30000毫秒。minSpareThreads Tomcat初始化時創(chuàng)建的線程數(shù)。maxSpareThreads一旦創(chuàng)建的線程超過這個值,Tomcat就會關(guān)閉不再需要的socket
13、線程。最好的方式是多設置幾次并且進行測試,觀察響應時間和內(nèi)存使用情況。在不同的機器、操作系統(tǒng)或虛擬機組合的情況下可能會不同,而且并不是所有的web站點的流量都是一樣的,因此沒有一刀切的方案來確定線程數(shù)的值。2.2.3加速JSP編譯速度當?shù)谝淮卧L問一個JSP文件時,它會被轉(zhuǎn)換為Java servlet源碼,接著被編譯成Java字節(jié)碼。客戶工程師可以控制使用哪個編譯器,默認情況下,Tomcat使用命令行javac進行使用的編譯器。也可以使用更快的編譯器,這里將介紹如何優(yōu)化它們。LD4另外一種方法是不要把所有的實現(xiàn)都使用JSP頁面,而是使用一些不同的java模板引擎變量。在Tomcat 4.0中可以
14、使用流行而且免費的Jikes編譯器。Jikes編譯器的速度要高于Sun的Java編譯器。首先要安裝Jikes(可訪問獲得更多的信息),接著需要在環(huán)境變量中設置JIKESPATH包含系統(tǒng)運行時所需的JAR文件。裝好Jikes以后還需要設置讓JSP編譯servlet使用Jikes,需要修改web.xml文件中jspCompilerPlugin的值:servlet servlet-name jsp/servlet-name servlet-class org.apache.jasper.servlet.JspServlet/servlet-class init-param param-name lo
15、gVerbosityLevel/param-name param-value WARNING/param-value/init-param init-param param-name jspCompilerPlugin/param-name param-value piler.JikesJavaCompiler/param-value/init-param init-param!-param-name org.apache.catalina.jsp_classpath/param-name-param-name classpath/param-name
16、 param-value/usr/local/jdk1.3.1-linux/jre/lib/rt.jar:/usr/local/lib/java/servletapi/servlet.jar/param-value/init-param load-on-startup 3/load-on-startup/servlet在Tomcat 4.1(或更高版本),JSP的編譯由包含在Tomcat里面的Ant程序控制器直接執(zhí)行??蛻糸_發(fā)人員需要在元素中定義一個名字叫compiler,并且在value中有一個支持編譯的編譯器名字,示例如下:servlet servlet-name jsp/servlet-
17、name servlet-class org.apache.jasper.servlet.JspServlet/servlet-class init-param param-name logVerbosityLevel/param-name param-value WARNING/param-value/init-param init-param param-name compiler/param-name param-value jikes/param-value/init-param load-on-startup 3/load-on-startup/servletLD5Ant可用的編譯器
18、名稱別名調(diào)用的編譯器classic javac1.1,javac1.2 Standard JDK 1.1/1.2 compiler modern javac1.3,javac1.4 Standard JDK 1.3/1.4 compiler jikes The Jikes compiler JVC Microsoft Microsoft command-line compiler from the Microsoft SDK for Java/Visual J+KJC The kopi compiler GCJ The gcj compiler(included as part of gcc)
19、SJ Symantec Symantecs Java compiler extJavac Runs either the modern or classic compiler in aJVM of its own由于JSP頁面在第一次使用時已經(jīng)被編譯,那么你可能希望在更新新的jsp頁面后馬上對它進行編譯。實際上,這個過程完全可以自動化,因為可以確認的是新的JSP頁面在生產(chǎn)服務器和在測試服務器上的運行效果是一樣的。在Tomcat4的bin目錄下有一個名為jspc的腳本。它僅僅是運行翻譯階段,而不是編譯階段,使用它可以在當前目錄生成Java源文件。它是調(diào)試JSP頁面的一種有力的手段??梢酝ㄟ^瀏覽器
20、訪問再確認一下編譯的結(jié)果。這樣就確保了文件被轉(zhuǎn)換成servlet,被編譯了可直接執(zhí)行。這樣也準確地模仿了真實用戶訪問JSP頁面,可以看到給用戶提供的功能。也抓緊這最后一刻修改出現(xiàn)的bug并且修改它。Tomcat提供了一種通過請求來編譯JSP頁面的功能??蛻艨梢栽跒g覽器地址欄中輸入8080/examples/jsp/dates/date.jsp?jsp_precompile=true,這樣Tomcat就會編譯data.jsp而不是執(zhí)行它。此舉唾手可得,不失為一種檢驗頁面正確性的捷徑。2.2.4 NIO配置NIO(No-blocking I/O)從JDK 1.4起,NIO API作為一個基于緩沖區(qū)
21、,并能提供非阻塞I/O操作的API被引入LD6。TOMCAT可以支持高并發(fā)的企業(yè)級應用。其中有個很大的原因就是,配置良好的tomcat都會使用APR(Apache Portable Runtime),APR是Apache HTTP Server2.x的核心,它是高度可移植的本地庫,它使用高性能的UXIN I/O操作,低性能的java io操作,但是APR對客戶開發(fā)人員而言可能稍稍有點難度,在很多OS平臺上,可能需要重新編譯APR。但是從Tomcat6.0以后,客戶開發(fā)人員很容易就可以用NIO的技術(shù)來提升tomcat的并發(fā)處理能力。但是為什么NIO可以提升tomcat的并發(fā)處理能力呢,我們先來看
22、一下java傳統(tǒng)io與java NIO的差別。Java傳統(tǒng)的IO操作都是阻塞式的(blocking I/O),如果有socket的編程基礎,你會接觸過堵塞socket和非堵塞socket,堵塞socket就是在accept、read、write等IO操作的時候,如果沒有可用符合條件的資源,不馬上返回,一直等待直到有資源為止。而非堵塞socket則是在執(zhí)行select的時候,當沒有資源的時候堵塞,當有符合資源的時候,返回一個信號,然后程序就可以執(zhí)行accept、read、write等操作,一般來說,如果使用堵塞socket,通常我們通常開一個線程accept socket,當讀完這次socket
23、請求的時候,開一個單獨的線程處理這個socket請求;如果使用非堵塞socket,通常是只有一個線程,一開始是select狀,當有信號的時候可以通過多路復用(Multiplexing)技術(shù)傳遞給一個指定的線程池來處理請求,然后原來的線程繼續(xù)select狀態(tài)。最簡單的多路復用技術(shù)可以通過java管道(Pipe)來實現(xiàn)。換句話說,如果客戶端的并發(fā)請求很大的時候,客戶系統(tǒng)可以使用少于客戶端并發(fā)請求的線程數(shù)來處理這些請求,而這些來不及立即處理的請求會被阻塞在java管道或者隊列里面,等待線程池的處理。在web服務器上阻塞IO(BIO)與NIO一個比較重要的不同是,客戶系統(tǒng)使用BIO的時候往往會為每一個
24、web請求引入多線程,每個web請求一個單獨的線程,所以并發(fā)量一旦上去了,線程數(shù)就上去了,CPU就忙著線程切換,所以BIO不合適高吞吐量、高可伸縮的web服務器;而NIO則是使用單線程(單個CPU)或者只使用少量的多線程(多CPU)來接受Socket,而由線程池來處理堵塞在pipe或者隊列里的請求.這樣的話,只要OS可以接受TCP的連接,web服務器就可以處理該請求。大大提高了web服務器的可伸縮性??蛻糁恍枰趕erver.xml里把HTTP Connector做如下更改,Connector port=8080protocol=HTTP/1.1connectionTimeout=20000r
25、edirectPort=8443/改為Connector port=8080protocol=org.apache.coyote.http11.Http11NioProtocolconnectionTimeout=20000redirectPort=8443/然后啟動服務器,如果出現(xiàn)org.apache.coyote.http11.Http11NioProtocol start的提示信息,表示NIO已經(jīng)啟動。其他的配置請參考官方配置文檔。2.2.5其它前面我們提到過操作系統(tǒng)通過一些限制手段來防止惡意的服務攻擊,同樣Tomcat也提供了防止惡意攻擊或禁止某些機器訪問的設置。Tomcat提供了兩個
26、參數(shù)供你配置:RemoteHostValve和RemoteAddrValve。通過配置這兩個參數(shù),可以讓你過濾來自請求的主機或IP地址,并允許或拒絕哪些主機/IP。與之類似的,在Apache的httpd文件里有對每個目錄的允許/拒絕指定。例如你可以把Admin Web application設置成只允許本地訪問,設置如下:Context path=/path/to/secret_filesValve className=org.apache.catalina.valves.RemoteAddrValveallow=deny=/Context如果沒有給出允許主機的指定,那么與拒
27、絕主機匹配的主機就會被拒絕,除此之外的都是允許的。與之類似,如果沒有給出拒絕主機的指定,那么與允許主機匹配的主機就會被允許,除此之外的都是拒絕的。3負載均衡在負載均衡的思路下,多臺服務器為對等方式,每臺服務器都具有同等的地位,可以單獨對外提供服務而無須其他服務器的輔助。通過負載分擔技術(shù),將外部發(fā)送來的請求按一定規(guī)則分配到對稱結(jié)構(gòu)中的某一臺服務器上,而接收到請求的服務器都獨立回應客戶機的請求。提供服務的一組服務器組成了一個應用服務器集群(cluster),集群下的對等多機環(huán)境可以增加系統(tǒng)的并發(fā)處理能力,和單臺機器出現(xiàn)故障系統(tǒng)的錯誤冗余能力;同時實現(xiàn)了負載均衡和系統(tǒng)高可靠性。四種實現(xiàn)負載均衡的方式
28、:第一是通過DNS,但只能實現(xiàn)簡單的輪流分配,不能處理故障;第二如果是基于MS IIS,Windows 2003 server本身就帶了負載均衡服務;第三是硬件方式,通過交換機的功能或?qū)iT的負載均衡設備可以實現(xiàn);第四種是軟件方式,通過一臺負載均衡服務器進行,上面安裝軟件。使用Apache Httpd Server做負載平衡器。客戶系統(tǒng)一般采用Apache httpd作為web服務器,即作為Tomcat的前端處理器,根據(jù)具體情況而定,有些情況下是不需要Apache httpd作為web服務器的,如系統(tǒng)展現(xiàn)沒有靜態(tài)頁面那就不需要Apache httpd,那時可以直接使用Tomcat作為web服務器
29、來使用。使用Apache httpd主要是它在處理靜態(tài)頁面方面的能力比Tomcat強多了。如下圖:3.1.1配置負載均衡器在apache下配置負載均衡器分為三步,注意每次修改httpd.conf和perties時不要忘了重新啟動apache。第一步,安裝和調(diào)試apache負載均衡器jk2模塊是apache www服務的插件,所以配置負載均衡器就得先安裝apache。假設客戶下載的是windows版本2.0.43,執(zhí)行setup.exe并回答一些簡單問題就可完成apache的任務。值得注意的是,安裝并啟動apache后如果apache對地址沒反應,你得修改apache安裝
30、路徑下htdocs目錄下的index.html.xx文件,比如把index.html.en改成index.html。第二步,安裝jk2把下載到的mod_jk2-2.0.43.dll改成mod_jk2.dll放到apache的modules目錄下,修改apache的httpd.conf,即在LoadModule foo_module modules/mod_foo.so行下插入mod_jk2模塊的裝載信息LD7:#Example:#LoadModule foo_module modules/mod_foo.so#LoadModule jk2_module modules/mod_jk2.dll第
31、三步,配置jk2 jk2的配置全在一個配置文件中,文件名為perties,和apache的httpd.conf放在同一個目錄下。以下是這個文件的內(nèi)容:#+#only at beginnin.In production uncomment it outlogger.apache2level=DEBUG#shm必須配shmfile=D:Program FilesApache GroupApache2logsshm.第一個tomcat的地址#Example socket channel,override port and host.channel.socket:tomcat1
32、port=11009host=#定義第一個工作者指向第一個tomcat#define the workerajp13:tomcat1channel=channel.socket:tomcat1#第二個tomcat得地址#Example socket channel,override port and host.channel.socket:tomcat2port=12009host=23#定義第二個工作者指向第二個tomcat#define the workerajp13:tomcat2channel=channel.socket:tomcat2#定義負載均
33、衡器,使其包含兩個工作者lb:lb1worker=ajp13:tomcat2worker=ajp13:tomcat1#指定負載均衡器完成單一地址映射,使得apache服務所在的uri全部指向兩個tomcat上的root#Uri mappinguri:/*group=lb:lb1#+3.1.2配置tomcat同屬于一個集群下的兩個服務實體,要求功能的同一性,所以我們可先安裝和配置第一個tomcat,接著拷貝形成第二個tomcat,最后配置第二個tomcat。安裝tomcat非常簡單,本文就不再描述。我們假設第一個tomcat的安裝路徑為d:tomcat1。配置第一個tomcat:tomcat中的
34、jk2 connector缺省端口為8009,為了在一臺機器上運行兩個tomcat,修改D:Tperties,設置jk2 connector的端口為11009,整個文件內(nèi)容如下:#+channelSocket.port=11009#+為了讓一臺機器上運行兩個tomcat,修改server.conf的tomcat停止指令監(jiān)聽端口:Server port=8005shutdown=SHUTDOWNdebug=0改為Server port=11005shutdown=SHUTDOWNdebug=0然后打開JK2 AJP connector,關(guān)閉其它connector
35、,下面是JK2 AJP 1.3的樣子,這里已把它的端口改為11009:!-Define aCoyote/JK2 AJP 1.3 Connector on port 8009-Connector className=org.apache.coyote.tomcat4.CoyoteConnectorport=11009minProcessors=5maxProcessors=75enableLookups=trueredirectPort=8443acceptCount=10debug=0connectionTimeout=20000useURIValidationHack=falseprotoc
36、olHandlerClassName=org.apache.jk.server.JkCoyoteHandler/接著配置需要集群支持的webapp(比如examples)的context,添加如下manager:Manager className=org.apache.catalina.session.InMemoryReplicationManagerprotocolStack=UDP(mcast_addr=;mcast_port=45566;ip_ttl=32):PING(timeout=3000;num_initial_members=6):FD(timeout=500
37、0):VERIFY_SUSPECT(timeout=1500):pbcast.STABLE(desired_avg_gossip=10000):pbcast.NAKACK(gc_lag=10;retransmit_timeout=3000):UNICAST(timeout=5000;min_wait_time=2000):MERGE2:FRAG:pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=false)/Manager注意protocolStack的值必須在一行內(nèi)寫完。配置第二個
38、tomcat:把已經(jīng)配好的第一個tomcat復制一份,形成第二個tomcat,假設路徑為d:tomcat2。修改D:Tperties,設置jk2 connector的端口12009,整個文件內(nèi)容如下:#+channelSocket.port=12009#+修改server.conf有了第一個tomcat的配置我們只需修改server.conf的tomcat停止指令監(jiān)聽端口:Server port=11005shutdown=SHUTDOWNdebug=0改為Server port=12005shutdown=SHUTDOWNdebug=0然后設置JK2 AJP
39、 connector端口為12009。3.1.3運行測試啟動apache,tomcat1和tomcat2。我們先準備兩個文件,第一個文件為test.jsp,拷貝到第一個tomcat的根web應用的目錄即d:tomcat1webappsROOT下:html body bgcolor=redcenter%=request.getSession().getId()%h1 Tomcat 1/h1/body/html第二個文件也為test.jsp,拷貝到第二個tomcat的根web應用的目錄即d:tomcat2webappsROOT下:html body bgcolor=bluecenter%=requ
40、est.getSession().getId()%h1 Tomcat 2/h1/body/html從不同的瀏覽器中多次輸入地址會看到不同的顏色,這表明apache中的jk2模塊起到了負載均衡的作用。4容量計劃容量計劃是在生產(chǎn)環(huán)境中使用Tomcat不得不提的提高性能的另一個重要的話題。如果你沒有對預期的網(wǎng)絡流量下的硬件和帶寬做考慮的話那么無論你如何做配置修改和測試都無濟于事。這里先對提及的容量計劃作一個簡要的定義:容量計劃是指評估硬件、操作系統(tǒng)和網(wǎng)絡帶寬,確定應用服務的服務范圍,尋求適合需求和軟件特性的軟硬件的一項活動。因此這里所說的軟件不僅包括Tomcat,也包括與Tomcat結(jié)合使用的任何第三方web服務器軟件。如果在購買軟硬件或部署系統(tǒng)前你
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 老年醫(yī)學關(guān)注焦點
- 2026年龍巖學院單招職業(yè)適應性考試模擬試題及答案解析
- 2026年重慶電信職業(yè)學院單招職業(yè)適應性考試模擬試題及答案解析
- 2026年河源職業(yè)技術(shù)學院單招職業(yè)適應性考試模擬試題及答案解析
- 2026年重慶商務職業(yè)學院單招職業(yè)適應性考試模擬試題及答案解析
- 2026年江西司法警官職業(yè)學院單招職業(yè)適應性測試模擬試題及答案解析
- 2026年重慶經(jīng)貿(mào)職業(yè)學院單招職業(yè)適應性考試模擬試題及答案解析
- 呼吸科主任診療技術(shù)探討
- 傳染病預防與疫苗接種策略研究與實踐案例
- 產(chǎn)科護理技術(shù)更新與推廣
- 寧夏調(diào)味料項目可行性研究報告
- GRR計算表格模板
- 長沙市長郡雙語實驗學校人教版七年級上冊期中生物期中試卷及答案
- 馬克思主義經(jīng)典著作選讀智慧樹知到課后章節(jié)答案2023年下四川大學
- 金庸短篇小說《越女劍》中英文對照版
- 2023年洛陽市洛龍區(qū)政務中心綜合窗口人員招聘筆試題庫及答案解析
- GB/T 19867.1-2005電弧焊焊接工藝規(guī)程
- GB/T 16102-1995車間空氣中硝基苯的鹽酸萘乙二胺分光光度測定方法
- GB/T 15171-1994軟包裝件密封性能試驗方法
- 醫(yī)院轉(zhuǎn)院證明樣本圖片(范文四篇)
- 外科護理學期末試卷3套18p
評論
0/150
提交評論