亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Tomcat性能調整優化

系統 2044 0
??????
. 引言
????性能測試與分析是軟件開發過程中介于架構和調整的一個廣泛并比較不容易理解的領域,更是一項較為復雜的活動。就像下棋游戲一樣,有效的性能測試和分析只能在一個良好的計劃策略和具備了對不可預料事件的處理能力的條件下順利地完成。一個下棋高手贏得比賽靠的不僅僅是對游戲規則的認識,更是靠他的自己的能力和不斷地專注于分析自己對手的實力來更加有效地利用和發揮規則的作用。同樣一個優秀的性能測試和分析人員將要面對的是來自一個全新的應用程序和環境下帶來的整個項目的挑戰。本文中作者結合自己的使用經驗和參考文檔,對Tomcat性能方面的調整做一簡要的介紹,并給出Tomcat性能的測試、分析和調整優化的一些方法。
二. 測量Web服務器的性能
????測量web服務器的性能是一項讓人感到畏縮的任務,但是我們在這里將給出一些需要注意的地方并且指點你了解其中更多的細節性的內容。它不像一些簡單的任務,如測量CPU的速率或者是測量程序占用CPU的比例,web服務器的性能優化中包括許調整許多變量來達到目標。許多的測量策略中都包含了一個看似簡單的瀏覽實際上是在向服務器發送大量的請求,我們稱之為客戶端的程序,來測量響應時間??蛻舳撕头掌鞫耸窃谕慌_機器上嗎?服務器在測試的時候還運行著其它的什么程序嗎?客戶端和服務器端的通訊是通過局域網,100baseT,10baseT還是使用調制解調器?客戶端是否一直重復請求相同的頁面,還是隨機地訪問不同的頁面?(這些影響到了服務緩存的性能)客戶端發送請求的有規律的還是突發的?你是在最終的配置環境下運行服務的還是在調試的配置環境下運行服務的?客戶端請求中包含圖片還是只有HTML頁面?是否有請求是通過servlets和JSP的,CGI程序,服務端包含(Server-Side Includes ,SSI是一個可以讓你使用動態HTML文件的技術)?所有這些都將是我們要關心的,并且幾乎我們不可能精確地把所有的問題都清楚地列出來。
壓力測試工具介紹
????“工欲善其事,必先利其器”,壓力測試只有借助于一些工具才可得以實施。
大多數web壓力測試工具的實現原理都是通過重復的大量的頁面請求來模擬多用戶對被測系統的并發訪問,以此達到產生壓力的目的。產生壓力的手段都是通過錄制或者是編寫壓力腳本,這些腳本以多個進程或者線程的形式在客戶端運行,這樣通過人為制造各種類型的壓力,我們可以觀察被測系統在各種壓力狀況下的表現,從而定位系統瓶頸,作為系統調優的基礎。目前已經存在的性能測試工具林林總總,數量不下一百種,從單一的開放源碼的免費小工具如 Aapache 自帶的 web 性能測試工具 Apache Benchmark、開源的Jmeter 到大而全的商業性能測試軟件如 Mercury 的 LoadRunner 等等。任何性能測試工具都有其優缺點,我們可以根據實際情況挑選用最合適的工具。您可以在這里找到一些web壓力測試工具http://www.softwareqatest.com/qatweb1.html#LOAD
????這里我們所使用的工具要支持web應用服務認證才可以,要支持接收發送cookies,不僅如此Tomcat支持多種認證方式,比如基本認證、基于表單的認證、相互認證和客戶端認證,而一些工具僅僅支持HTTP基本認證。真實地模擬用戶認證是性能測試工具的一個重要的部分,因為認證機制將對一個web站點的性能特征產生重要的影響。基于你在產品中使用的不同的認證方式,你需要從上面的工具列表中選擇使用這種特性的測試工具。
Apache Benchmark和http_load是命令行形式的工具,非常易于使用。Apache Benchmark可以模仿單獨的URL請求并且重復地執行,可以使用不同的命令行參數來控制執行迭代的次數,并發用戶數等等。它的一個特點是可以周期性地打印出處理過程的信息,而其它工具只能給出一個全局的報告。
???
. 外部環境的調整
  在Tomcat和應用程序進行了壓力測試后,如果您對應用程序的性能結果不太滿意,就可以采取一些性能調整措施了,當然了前提是應用程序沒有問題,我們這里只講Tomcat的調整。由于Tomcat的運行依賴于JVM,所以在這里我們把Tomcat的調整可以分為兩類來詳細描述:
  外部環境調整
  調整非Tomcat組件,例如Tomcat運行的操作系統和運行Tomcat的java虛擬機。
  自身調整
  修改Tomcat自身的參數,調整Tomcat配置文件中的參數。
  下面我們將詳細講解外部環境調整的有關內容,Tomcat自身調整的內容將在第2部分中闡述。
  1.JAVA虛擬機性能優化
  Tomcat本身不能直接在計算機上運行,需要依賴于硬件基礎之上的操作系統和一個java虛擬機。您可以選擇自己的需要選擇不同的操作系統和對應的JDK的版本(只要是符合Sun發布的Java規范的),但我們推薦您使用Sun公司發布的JDK。確保您所使用的版本是最新的,因為Sun公司和其它一些公司一直在為提高性能而對java虛擬機做一些升級改進。一些報告顯示JDK1.4在性能上比JDK1.3提高了將近10%到20%。
  可以給Java虛擬機設置使用的內存,但是如果你的選擇不對的話,虛擬機不會補償??赏ㄟ^命令行的方式改變虛擬機使用內存的大小。如下表所示有兩個參數用來設置虛擬機使用內存的大小。
參數???????????????????????????????? 描述
-Xms<size>?????????????????????? JVM初始化堆的大小
-Xmx<size>?????????????????????? JVM堆的最大值
  這兩個值的大小一般根據需要進行設置。初始化堆的大小執行了虛擬機在啟動時向系統申請的內存的大小。一般而言,這個參數不重要。但是有的應用程序在大負載的情況下會急劇地占用更多的內存,此時這個參數就是顯得非常重要,如果虛擬機啟動時設置使用的內存比較小而在這種情況下有許多對象進行初始化,虛擬機就必須重復地增加內存來滿足使用。由于這種原因,我們一般把-Xms和-Xmx設為一樣大,而堆的最大值受限于系統使用的物理內存。一般使用數據量較大的應用程序會使用持久對象,內存使用有可能迅速地增長。當應用程序需要的內存超出堆的最大值時虛擬機就會提示內存溢出,并且導致應用服務崩潰。因此一般建議堆的最大值設置為可用內存的最大值的80%。
  Tomcat默認可以使用的內存為128MB,在較大型的應用項目中,這點內存是不夠的,需要調大。
  Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下設置:
  JAVA_OPTS='-Xms【初始化內存大小】 -Xmx【可以使用的最大內存】'
  需要把這個兩個參數值調大。例如:
  JAVA_OPTS='-Xms256m -Xmx512m'
  表示初始化內存為256MB,可以使用的最大內存為512MB。
  另外需要考慮的是Java提供的垃圾回收機制。虛擬機的堆大小決定了虛擬機花費在收集垃圾上的時間和頻度。收集垃圾可以接受的速度與應用有關,應該通過分析實際的垃圾收集的時間和頻率來調整。如果堆的大小很大,那么完全垃圾收集就會很慢,但是頻度會降低。如果你把堆的大小和內存的需要一致,完全收集就很快,但是會更加頻繁。調整堆大小的的目的是最小化垃圾收集的時間,以在特定的時間內最大化處理客戶的請求。在基準測試的時候,為保證最好的性能,要把堆的大小設大,保證垃圾收集不在整個基準測試的過程中出現。
  如果系統花費很多的時間收集垃圾,請減小堆大小。一次完全的垃圾收集應該不超過 3-5 秒。如果垃圾收集成為瓶頸,那么需要指定代的大小,檢查垃圾收集的詳細輸出,研究垃圾收集參數對性能的影響。一般說來,你應該使用物理內存的 80% 作為堆大小。當增加處理器時,記得增加內存,因為分配可以并行進行,而垃圾收集不是并行的。
?? 2. 操作系統性能優化
  這里說的操作系統是指運行web服務器的系統軟件,當然,不同的操作系統是為不同的目的而設計的。比如OpenBSD是面向安全的,因此在它的內核中有許多的限制來防止不同形式的服務攻擊(OpenBSD的一句座右銘是“默認是最安全的”)。這些限制或許更多地用來運行活躍的web服務器。
  而我們常用的Linux操作系統的目標是易用使用,因此它有著更高的限制。使用BSD內核的系統都帶有一個名為“Generic”的內核,表明所有的驅動器都靜態地與之相連。這樣就使系統易于使用,但是如果你要創建一個自定義的內核來加強其中某些限制,那就需要排除不需要的設備。Linux內核中的許多驅動都是動態地加載的。但是換而言之,內存現在變得越來越便宜,所以因為加載額外的設備驅動就顯得不是很重要的。重要的是要有更多的內存,并且在服務器上騰出更多的可用內存。
  小提示:雖然現在內存已經相當的便宜,但還是盡量不要購買便宜的內存。那些有牌子的內存雖然是貴一點,但是從可靠性上來說,性價比會更高一些。
  如果是在Windows操作系統上使用Tomcat,那么最好選擇服務器版本。因為在非服務器版本上,最終用戶授權數或者操作系統本身所能承受的用戶數、可用的網絡連接數或其它方面的一些方面都是有限制的。并且基于安全性的考慮,必須經常給操作系統打上最新的補丁。
  3.Tomcat與其它web服務器整合使用
  雖然tomcat也可以作web服務器,但其處理靜態html的速度比不上apache,且其作為web服務器的功能遠不如apache,因此我們想把apache和tomcat集成起來,將html與jsp的功能部分進行明確分工,讓tomcat只處理jsp部分,其它的由apache,IIS等這些web服務器處理,由此大大節省了tomcat有限的工作“線程”。
  4.負載均衡
  在負載均衡的思路下,多臺服務器為對稱方式,每臺服務器都具有同等的地位,可以單獨對外提供服務而無須其他服務器的輔助。通過負載分擔技術,將外部發送來的請求按一定規則分配到對稱結構中的某一臺服務器上,而接收到請求的服務器都獨立回應客戶機的請求。
  提供服務的一組服務器組成了一個應用服務器集群(cluster),并對外提供一個統一的地址。當一個服務請求被發至該集群時,根據一定規則選擇一臺服務器,并將服務轉定向給該服務器承擔,即將負載進行均衡分攤。
  通過應用負載均衡技術,使應用服務超過了一臺服務器只能為有限用戶提供服務的限制,可以利用多臺服務器同時為大量用戶提供服務。當某臺服務器出現故障時,負載均衡服務器會自動進行檢測并停止將服務請求分發至該服務器,而由其他工作正常的服務器繼續提供服務,從而保證了服務的可靠性。
  負載均衡實現的方式大概有四種:第一是通過DNS,但只能實現簡單的輪流分配,不能處理故障,第二如果是基于MS IIS,Windows 2003 server本身就帶了負載均衡服務,第三是硬件方式,通過交換機的功能或專門的負載均衡設備可以實現,第四種是軟件方式,通過一臺負載均衡服務器進行,上面安裝軟件。使用Apache Httpd Server做負載平衡器,Tomcat集群節點使用Tomcat就可以做到以上第四種方式。這種方式比較靈活,成本相對也較低。另外一個很大的優點就是可以根據應用的情況和服務器的情況采取一些策略。


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1441590


Tomcat性能調整優化


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91在线免费看 | 国产97色在线 | 免费 | 四虎网址换成什么了2021 | 大色佬视频在线观看 | 波多野结衣一区二区三区在线观看 | 久久久久久久一精品 | 亚洲成a人一区二区三区 | 欧美一级片网址 | 香蕉人人超人人超免费看视频 | 国产成综合 | 欧美日韩视频在线 | 特级生活片 | 亚洲最大在线视频 | 亚洲综合图 | 婷婷丁香在线视频 | 亚洲美日韩 | 国产美女久久久久 | 免费国产小视频在线观看 | 国产乱码亚洲精品一区二区 | 国产成人精品区在线观看 | 亚洲在线网站 | 日韩高清性爽一级毛片免费 | 免费视频一级片 | 亚洲欧美一区二区三区综合 | 奇米影视88888 | 国产午夜精品一区二区 | 欧美高清视频www夜色资源网 | 在线观看国产情趣免费视频 | 欧美极品妇xxxxxbbbbb | 国产亚洲精品久久 | 国外成人免费视频 | 日韩一区二区三区在线观看 | 在线精品国产第一页 | 久久国产视频网站 | 99热最新在线观看 | 一本一本久久a久久精品综合麻豆 | 99尹人香蕉国产免费天天拍 | 视频一区久久 | 99九九精品| 久久国产精品免费视频 | 中文字幕三级理论影院 |