首页
/
每日頭條
/
科技
/
tomcat系統架構性能優化
tomcat系統架構性能優化
更新时间:2025-02-19 03:58:42

  對于JavaWeb開發人員而言,Tomcat已成為默認的web服務器,但是在生産環境下使用Tomcat部署應用,我們如果采用Tomcat默認的配置,尤其是内存和線程的配置,其配置都很低,容易成為性能瓶頸,所以我們需要對Tomcat服務器進行優化,提升其運行性能,下面我們一起來看看Tomcat如何優化?

  tomcat系統架構性能優化(淺談Tomcat服務器優化方法)(1)

  一、Tomcat内存優化,啟動時告訴JVM需要多大内存(調優内存是最直接的方式)

  Windows 下的 catalina.bat

  Linux 下的 catalina.sh

  在該文件中配置jvm的内存空間,如: JAVA_OPTS='-Xms256m -Xmx512m'

  -Xms JVM初始化堆的大小

  -Xmx JVM堆的最大值,實際參數大小根據服務器配置或者項目具體設置;

  二、Tomcat 線程優化 在server.xml中配置

  比如:

  Connector port="80" protocol="HTTP/1.1" maxThreads="600" minSpareThreads="100" maxSpareThreads="500" acceptCount="700" connectionTimeout="20000" /

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

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

  三、Tomcat IO 優化

  1:同步阻塞IO(Java BIO) 同步并阻塞,服務器實現模式為一個連接一個線程(one connection one thread 想想都覺得恐怖,線程可是非常寶貴的資源),當然可以通過線程池機制改善.

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

  3:異步非阻塞IO(Java NIO2又叫AIO) 主要與NIO的區别主要是操作系統的底層區别,可以做個比喻:比作快遞,NIO就是網購後要自己到官網查下快遞是否已經到了(可能是多次),然後自己去取快遞;AIO就是快遞員送貨上門了(不用關注快遞進度)。

  BIO方式适用于連接數目比較小且固定的架構,這種方式對服務器資源要求比較高,并發局限于應用中,JDK1.4以前的唯一選擇,但程序直觀簡單易理解.

  NIO方式适用于連接數目多且連接比較短(輕操作)的架構,比如聊天服務器,并發局限于應用中,編程比較複雜,JDK1.4開始支持.

  AIO方式使用于連接數目多且連接比較長(重操作)的架構,比如相冊服務器,充分調用OS參與并發操作,編程比較複雜,JDK7開始支持.

  在server.xml中

  Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" URIEncoding="UTF-8" useBodyEncodingForURI="true" enableLookups="false" redirectPort="8443" /

  實現對Tomcat的IO切換。

  四、大殺器APR

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

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

  在産品環境中,特别是直接使用Tomcat做WEB服務器的時候,應該使用Tomcat Native來提高其性能,如果不配APR,基本上300個線程狠快就會用滿,以後的請求就隻好等待.但是配上APR之後,并發的線程數量明顯下降,從原來的300可能會馬上下降到隻有幾十,新的請求會毫無阻塞的進來;

  在局域網環境測,就算是400個并發,也是一瞬間就處理/傳輸完畢,但是在真實的Internet環境下,頁面處理時間隻占0.1%都不到,絕大部分時間都用來頁面傳輸,如果不用APR,一個線程同一時間隻能處理一個用戶,勢必會造成阻塞,所以生産環境下用apr是非常必要的.

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

  最後,優化的前提條件是良好的代碼質量和設計。

  聲明:優質内容貴在與大家共享,部分文章來源于網絡,如有侵權請告知,我們會在第一時間處理。感謝支持,感謝關注與轉發!

  ,

Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
這樣給手機充電能延長電池壽命!
這樣給手機充電能延長電池壽命!
這樣給手機充電能延長電池壽命!這樣給手機充電能延長電池壽命!如果你希望延長電池的有效使用時間,除了充電器的質量要有保證外,正确的充電技巧也必不可少:(1)如果新買的手機電池是锂離子,那麼前3~5次充電一般稱為調整期,應充14小時以上,以保證充分激活锂離子的活性。锂離子電池沒有記憶效應,但有很強的惰性...
2025-02-19
太陽能庭院燈優點-LED庭院燈怎麼樣?
太陽能庭院燈優點-LED庭院燈怎麼樣?
太陽能庭院燈優點-LED庭院燈怎麼樣?LED庭院燈的介紹LED庭院燈發展到21世紀,被廣泛運用于城市慢車道、窄車道、居民小區、旅遊景區、公園、廣嘗私家花園、庭院走廊等公共場所的道路單側或倆冊用來道路照明,提高人們夜間出行的安全性用來增加人們戶外活動的時間,提高生命财産的安全。白天,庭院燈可以點綴城市...
2025-02-19
空調原理與維修
空調原理與維修
當代的中國基,本上每家每戶都已經有了空調這個小家電,在祖國的領導下,人們都走進了小康,都過上了幸福的生活。但是當你在享受空調帶給你的安逸和涼爽的時候,你是否思考過空調的工作原理呢?當空調用了一段時間以後,出了一點故障,你知道該怎麼樣來維修嗎?如果你以前才能夠來沒有關注過關于空調的工作原理與維修等方面...
2025-02-19
如何選購家用抽油煙機?
如何選購家用抽油煙機?
如何選購家用抽油煙機?如何選購家用抽油煙機?一、作為經濟條件一般的居民可以選購淺型吸油煙機或亞深型吸油煙機,這兩款吸油煙機價格比較便宜,但吸油煙的能力不算強,使用者可以在爐竈上方、吸油煙機的兩側加裝櫃子或擋風闆,這樣可在吸油煙機的吸風口造成負壓區,加強吸油煙機的吸油煙的能力。二、經濟條件較好的居民建...
2025-02-19
洗碗機的清潔保養-洗碗機的使用方法
洗碗機的清潔保養-洗碗機的使用方法
洗碗機通過耗電量的不同或者及内存放的有效容積不同可以有不同的規格。現在的許多洗碗機越來越發展,功能越來越齊全,因此,在選購時可以根據自身的需要選擇适合的規格和所需要的功能。洗碗機的清潔保養-洗碗機的使用方法洗碗機的清潔保養據統計,洗碗機每台的售價都在千元以上,做好清潔保養工作是延續洗碗機使用壽命的最...
2025-02-19
Copyright 2023-2025 - www.tftnews.com All Rights Reserved