Java, Only Java!

          導航

          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          公告

          [版權聲明]本站內文章,如未標注 [轉載],均系原創或翻譯之作,本人朱遠翔保留一切權利。本站原創及譯作未經本人許可,不得用于商業用途及傳統媒體。網絡媒體可隨意轉載,或以此為基礎進行演譯,但務必以鏈接形式注明原始出處和作者信息,否則屬于侵權行為。另對本站轉載他處文章,俱有說明,如有侵權請聯系本人,本人將會在第一時間刪除侵權文章。及此說明,重之之重。

          隨筆分類(134)

          文章分類(7)

          隨筆檔案(140)

          文章檔案(51)

          統計

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評論排行榜

          Tomcat常用調優技巧

          ??? 本文是就Tomcat 4為基礎向大家介紹WEB容器調優的,因為許多朋友安裝好之后就開始正式上線,很少有人以用戶現場為基礎對服務器進行調優。如果并發量小,系統可能不會出問題,但是并發量大時,系統反應速度迅速下降,由于不了解原因,因此大家還拼命在自己的應用中尋找問題,從而浪費了寶貴的現場時間。但是Tomcat如何調優呢?
          ??? 其實真正的WEB容器調優是需要許多方面的知識的,你必須了解網絡+硬件+OS+JVM+WEB容器,但是這篇文章無法講解那么多,而應用服務器本身也有些調優的基本原則,下文就會給予介紹。
          ??? 先在Tomcat安裝目錄中找到conf子目錄,然后再打開web.xml文件,搜索附件A中的內容,可能會有些不同。不同的地方就是需要修改的部分。
          ??? 1. 屏蔽DNS查詢。
          ??? Web應用程序可以通過Web容器提供的getRemoteHost()方法獲得訪問Web應用客戶的IP地址和名稱,但是這樣會消耗Web容器的資源,并且還需要通過IP地址和DNS服務器反查用戶的名字,因此當系統上線時,可以將這個屬性關閉,從而減少資源消耗,那么Web應用也就只能記錄下IP地址了。修改的屬性是enableLoopups="false"
          ??? 2. 調整線程數。
          ??? Tomcat通過線程池來為用戶訪問提供響應,對于上線的系統初步估計用戶并發數量后,然后調整線程池容量。例如:用戶并發數量大約在100左右。那么可以設置minProcessors="100" maxProcessors="100",將最大和最小設置為一樣后,線程池不會再釋放空閑的線程,使用戶訪問突然增加的時候,不需要再消耗系統資源去創建新的線程。
          ??? 3. 調整最大連接數
          ??? 這個其實最復雜,即使用戶并發量大,但是系統反應速度快的話,可以把這個值不用設置太高,高了系統需要消耗大量的資源去切換線程,但是如果設置太低也會造成應用無法滿足用戶并發需要。因此設置這個最好能夠結合整個系統的跟蹤與調優,使系統達到最好的平穩狀態。一般設置為maxProcessors的1.5倍就可以了。
          ??? 4. 調整網絡超時。
          ??? 主要是HTTP協議也有個連接過程,客戶端連接到服務器上后,多長時間沒有得到處理就會被釋放。如果服務器處理速度較慢,但是希望每個用戶都能得到有效處理,或者網絡環境不好,需要保證用戶不會因為超時會斷,也可以把時間加長。但是一般設置成connectionTimeout="30000"就可以了。太長對系統來說價值不大,反而會浪費系統資源在無謂的長連接上。
          ??? 附件A。
          ??? 在tomcat配置文件server.xml中的<Connector ... />配置中,和連接數相關的參數有:
          ??? minProcessors:最小空閑連接線程數,用于提高系統處理性能,默認值為10
          ??? maxProcessors:最大連接線程數,即:并發處理的最大請求數,默認值為75
          ??? acceptCount:允許的最大連接數,應大于等于maxProcessors,默認值為100
          ??? enableLookups:是否反查域名,取值為:true或false。為了提高處理能力,應設置為false
          ??? connectionTimeout:網絡連接超時,單位:毫秒。設置為0表示永不超時,這樣設置有隱患的。通常可設置為20000毫秒。??? <Connector
          ??? className="org.apache.coyote.tomcat4.CoyoteConnector"
          ??? port="8080" minProcessors="5" maxProcessors="75"
          ??? enableLookups="true" redirectPort="8443"
          ??? acceptCount="10" debug="0" connectionTimeout="20000"
          ??? useURIValidationHack="false"
          />

          posted on 2007-12-15 18:00 zYx.Tom 閱讀(2713) 評論(4)  編輯  收藏

          評論

          # re: Tomcat常用調優技巧[未登錄] 2007-12-16 12:37 paul

          不錯  回復  更多評論   

          # re: Tomcat常用調優技巧 2007-12-17 16:51 CoderDream

          非常不錯,感謝分享,收藏!  回復  更多評論   

          # re: Tomcat常用調優技巧 2008-03-08 18:00 鐘玉兵

          寫得不錯  回復  更多評論   

          # re: Tomcat常用調優技巧[未登錄] 2008-04-11 18:49 求知者

          寫的簡單易懂,挺好的。  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 江源县| 九龙县| 潜山县| 鄂托克前旗| 鲁山县| 镇赉县| 永春县| 肥乡县| 汨罗市| 富源县| 东城区| 上高县| 青神县| 中江县| 阳泉市| 莆田市| 句容市| 丹阳市| 平山县| 旬邑县| 甘泉县| 江陵县| 天台县| 宿州市| 南宫市| 邵东县| 桂平市| 济南市| 牡丹江市| 清水河县| 昌都县| 浏阳市| 顺平县| 广东省| 临邑县| 西安市| 宁化县| 铜陵市| 江都市| 肥东县| 新余市|