教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Java培訓實戰(zhàn)教程之Tomcat的優(yōu)化經(jīng)驗

更新時間:2016年01月28日11時38分 來源:傳智播客Java培訓學院 瀏覽次數(shù):

   一、掉對web.xml的監(jiān)視,把jsp提前編輯成Servlet。有富余物理內(nèi)存的情況,加大tomcat使用的jvm的內(nèi)存
 二、服務器資源
  服務器所能提供CPU、內(nèi)存、硬盤的性能對處理能力有決定性影響。
  (1) 對于高并發(fā)情況下會有大量的運算,那么CPU的速度會直接影響到處理速度。
  (2) 內(nèi)存在大量數(shù)據(jù)處理的情況下,將會有較大的內(nèi)存容量需求,可以用-Xmx -Xms -XX:MaxPermSize等參數(shù)對內(nèi)存不同功能塊進行劃分。我們之前就遇到過內(nèi)存分配不足,導致虛擬機一直處于full GC,從而導致處理能力嚴重下降。
  (3) 硬盤主要問題就是讀寫性能,當大量文件進行讀寫時,磁盤極容易成為性能瓶頸。最好的辦法還是利用下面提到的緩存。
 三、利用緩存和壓縮
  對于靜態(tài)頁面最好是能夠緩存起來,這樣就不必每次從磁盤上讀。這里我們采用了Nginx作為緩存服務器,將圖片、css、js文件都進行了緩存,有效的減少了后端tomcat的訪問。
  另外,為了能加快網(wǎng)絡傳輸速度,開啟gzip壓縮也是必不可少的。但考慮到tomcat已經(jīng)需要處理很多東西了,所以把這個壓縮的工作就交給前端的Nginx來完成。
  除了文本可以用gzip壓縮,其實很多圖片也可以用圖像處理工具預先進行壓縮,找到一個平衡點可以讓畫質損失很小而文件可以減小很多。曾經(jīng)我就見過一個圖片從300多kb壓縮到幾十kb,自己幾乎看不出來區(qū)別。
   四、采用集群
  單個服務器性能總是有限的,最好的辦法自然是實現(xiàn)橫向擴展,那么組建tomcat集群是有效提升性能的手段。我們還是采用了Nginx來作為請求分流的服務器,后端多個tomcat共享session來協(xié)同工作。可以參考之前寫的《利用nginx+tomcat+memcached組建web服務器負載均衡》。
 五、. 優(yōu)化tomcat參數(shù)
  這里以tomcat7的參數(shù)配置為例,需要修改conf/server.xml文件,主要是優(yōu)化連接配置,關閉客戶端dns查詢。
   
  1. <Connector port="8080"   
  2.            protocol="org.apache.coyote.http11.Http11NioProtocol"  
  3.            connectionTimeout="20000"  
  4.            redirectPort="8443"   
  5.            maxThreads="500"   
  6.            minSpareThreads="20"  
  7.            acceptCount="100" 
  8.            disableUploadTimeout="true" 
  9.            enableLookups="false"   
  10.            URIEncoding="UTF-8" />
復制代碼


本文版權歸傳智播客Java培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:傳智播客Java培訓學院
首發(fā):http://oisangadgets.com/javaee 
0 分享到:
和我們在線交談!