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

Tomcat 生產服務器性能優化

系統 2495 0

?

  1. 增加JVM堆(heap)

  2. 解決內存泄漏問題

  3. 線程池(thread pool)的設置

  4. 壓縮

  5. 調節數據庫性能

  6. Tomcat原生庫(native library)

  7. 其他選項

第一步? –?提高JVM棧內存Increase JVM heap memory

  你使用過tomcat的話,簡單的說就是“內存溢出”.?通常情況下,這種問題出現在實際的生產環境中.產生這種問題的原因是tomcat使用較少的內存給進程,通過配置TOmcat的配置文件(Windows?下的catalina.bat或Linux下的catalina.sh)可以解決這種問題.這種解決方法是通過增加JVM的棧內存實現的.也就是說,JVM通常不去調用垃圾回收器,所以服務器可以更多關注處理web請求,并要求盡快完成。要更改文件(catalina.sh) 位于"\tomcat server folder\bin\catalina.sh",下面,給出這個文件的配置信息,

      
        JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8

   

-server -Xms1024m -Xmx1024m

   

-XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m

   

-XX:MaxPermSize=512m -XX:+DisableExplicitGC"
      
    

  -Xms – 指定初始化時化的棧內存

  -Xmx –?指定最大棧內存

  在重啟你的Tomcat服務器之后,這些配置的更改才會有效。下面將介紹如何處理JRE內存泄漏.

第二步 - 解決JRE內存泄漏

  另一個影響Tomcat 性能的因素是內存泄露,就像我前面提及的,可以通過更新到最新版本的Tomcat來獲得較好性能和可擴展性.現在這句話將成為事實。如果我們使用最新的 tomcat 服務器版本 6.0.26? 或更高版本,可以解決此類錯誤。因為它包含一個監聽器來處理 JRE 和 permgen 內存泄漏。這里使用的監聽器

      
        <
      
      
        Listener 
      
      
        className
      
      
        ="org.apache.catalina.core.JreMemoryLeakPreventionListener"
      
      
        />
      
    

你可以找到上述監聽器類配置文件 server.xml 在"tomcat project folder/conf/server.xml"中的。下一步我們將介紹如何調整連接器屬性"maxThreads"

第三步 – 線程池設置

  線程池指定Web請求負載的數量,因此,為獲得更好的性能這部分應小心處理。可以通過調整連接器屬性“maxThreads”完成設置。maxThreads的值應該根據流量的大小,如果值過低,將有沒有足夠的線程來處理所有的請求,請求將進入等待狀態,只有當一個的處理線程釋放后才被處理;如果設置的太大,Tomcat的啟動將花費更多時間。因此它取決于我們給maxThreads設置一個正確的值。

?

      
        <
      
      
        Connector 
      
      
        port
      
      
        ="8080"
      
      
         address
      
      
        ="localhost"
      
      
        

  

maxThreads
      
      
        ="250"
      
      
         maxHttpHeaderSize
      
      
        ="8192"
      
      
        

  

emptySessionPath
      
      
        ="true"
      
      
         protocol
      
      
        ="HTTP/1.1"
      
      
        

  

enableLookups
      
      
        ="false"
      
      
         redirectPort
      
      
        ="8181"
      
      
         acceptCount
      
      
        ="100"
      
      
        

  

connectionTimeout
      
      
        ="20000"
      
      
         disableUploadTimeout
      
      
        ="true"
      
      
        />
      
    

在上述配置中,maxThreads值設定為“250”,這指定可以由服務器處理的并發請求的最大數量。如果沒有指定,這個屬性的默認值為“200”。任何多出的并發請求將收到“拒絕連接”的錯誤提示,直到另一個處理請求進程被釋放。錯誤看起來如下

      
        org.apache.tomcat.util.threads.ThreadPool logFull SEVERE: All threads (250) are





currently busy, waiting. Increase maxThreads (250) or check the servlet status
      
    

 如果應用提示上述錯誤,務必檢查上述錯誤是否是由于單個請求花費太長時間造成的,這個問題的原因是這樣的,有時候如果數據庫連接不釋放的話,進程將不會處理其它請求。

  注意: 如果請求的數量超過了“750”,這將不是意味著將maxThreads屬性值設置為“750”,它意外著最好使用“Tomcat集群”的多個實例。也就是說,如果有“1000”請求,兩個Tomcat實例設置“maxThreads= 500”,而不在單Tomcat實例的情況下設置maxThreads=1000。

  根據我的經驗,準確值的設定可以通過將應用在在各種環境中測試得出。接下來,我們來看看如何壓縮的MIME類型。

第四步- 壓縮

  Tomcat有一個通過在server.xml配置文件中設置壓縮的選項。壓縮可以在connector像如下設置中完成

? ? ??

      
        <
      
      
        Connector 
      
      
        port
      
      
        ="8080"
      
      
         protocol
      
      
        ="HTTP/1.1"
      
      
        

  

connectionTimeout
      
      
        ="20000"
      
      
        

  

redirectPort
      
      
        ="8181"
      
      
         compression
      
      
        ="500"
      
      
        

  

compressableMimeType
      
      
        ="text/html,text/xml,text/plain,application/octet-stream"
      
      
        />
      
    

 在前面的配置中,當文件的大小大于等于500bytes時才會壓縮。如果當文件達到了大小但是卻沒有被壓縮,那么設置屬性compression="on"。否則Tomcat默認設置是“off”。接下來我們將看看如何調優數據庫。

第五步- 數據庫性能調優

  Tomcat性能在等待數據庫查詢被執行期間會降低。如今大多數應用程序都是使用可能包含“命名查詢”的關系型數據庫。如果是那樣的話,Tomcat會在啟動時默認加載命名查詢,這個可能會提升性能。另一件重要事是確保所有數據庫連接正確地關閉。給數據庫連接池設置正確值也是十分重要的。我所說的值是指Resource要素的最大空閑數(maxIdle),最大連接數(maxActive),最大建立連接等待時間(maxWait)屬性的值。因為配置依賴與應用要求,我也不能在本文指定正確的值。你可以通過調用數據庫性能測試來找到正確的值。

第六步 – Tomcat原生庫

  Tomcat的原生庫基于Apache可移植運行時(Apache Portable Runtime簡稱APR),給程序員提供了超強的擴展性和性能,在產品運作中幫助融合原生的服務器技術以展現最佳的性能。想知道安裝說明的朋友請參考 Tomcat Native Library – (APR) Installation

第七步 – 其他選項

  這些選項是:

  • 開啟瀏覽器的緩存,這樣讀取存放在webapps文件夾里的靜態內容會更快,大大推動整體性能。

  • 每當開機時,Tomcat服務器應當自動地重啟。

  • 一般情況下HTTPS請求會比HTTP請求慢。如果你想要更好的安全性,即使慢一點我們還是要選擇HTTPS。

  就這么多啦。在這篇文章里,我教給了大家一些提高Tomcat服務器性能的方法。如果你覺得這篇文章有用,或者你對提高Tomcat服務器性能有別的看法,請不要忘記留下寶貴的評論。祝你今天編程愉快!

  原文地址: http://www.techbrainwave.com/?p=836

?

Tomcat 生產服務器性能優化


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久操网在线 | 亚洲伊人tv综合网色 | 一区二区三区视频观看 | 91精品综合久久久久m3u8 | 在线亚洲精品国产成人二区 | 夜夜操美女 | 成人伊人青草久久综合网 | 欧美视频一区二区三区 | 天天操天天透 | 亚洲偷图色综合色就色 | 免费视频不卡一区二区三区 | 久久综合伊人 | 69做爰视频在线观看 | 麻豆久久婷婷综合五月国产 | 国产三区二区 | 国产日韩欧美一区二区三区综合 | 鲁鲁狠色综合色综合网站 | 久艾草国产成人综合在线视频 | 成人亚洲在线观看 | 九九国产 | 在线 | 一区二区三区四区 | 久久精品亚洲日本筱田优 | 国产一区二区免费在线 | 国产婷婷综合在线视频中 | 亚洲一区二区三区免费视频 | 97视频免费公开成人福利 | 日韩成人精品在线 | 欧美亚洲国产成人精品 | 色老头xxxxbbbb视频 | 男人看的网址 | 日韩经典中文字幕 | 综合图区亚洲白拍在线 | 九九热视频在线播放 | 久久艹在线 | 可以免费观看的毛片 | 亚洲国产综合视频 | 最新欧美一级视频 | 久久精品国产99久久3d动漫 | 久久久久夜 | 色老头一区二区三区 | 国产精品久久在线观看 |