好程序員分享Java常見面試題Tomcat優化經驗

  好程序員分享Java常見面試題Tomcat優化經驗Tomcat作爲Web服務器,它的處理性能直接關係到用戶體驗,下面是幾種常見的優化措施:

 

一、掉對web.xml的監視,把jsp提前編輯成Servlet。有富餘物理內存的情況,加大tomcat使用的jvm的內存

 

二、服務器資源

 

服務器所能提供CPU、內存、硬盤的性能對處理能力有決定性影響。

 

(1) 對於高併發情況下會有大量的運算,那麼CPU的速度會直接影響到處理速度。

 

(2) 內存在大量數據處理的情況下,將會有較大的內存容量需求,可以用-Xmx -Xms -XX:MaxPermSize等參數對內存不同功能塊進行劃分。我們之前就遇到過內存分配不足,導致虛擬機一直處於full GC,從而導致處理能力嚴重下降。

 

(3) 硬盤主要問題就是讀寫性能,當大量文件進行讀寫時,磁盤極容易成爲性能瓶頸。最好的辦法還是利用下面提到的緩存。

 

三、利用緩存和壓縮

 

對於靜態頁面最好是能夠緩存起來,這樣就不必每次從磁盤上讀。這裏我們採用了Nginx作爲緩存服務器,將圖片、cssjs文件都進行了緩存,有效的減少了後端tomcat的訪問。

 

另外,爲了能加快網絡傳輸速度,開啓gzip壓縮也是必不可少的。但考慮到tomcat已經需要處理很多東西了,所以把這個壓縮的工作就交給前端的Nginx來完成。

 

除了文本可以用gzip壓縮,其實很多圖片也可以用圖像處理工具預先進行壓縮,找到一個平衡點可以讓畫質損失很小而文件可以減小很多

 

四、採用集羣

 

單個服務器性能總是有限的,最好的辦法自然是實現橫向擴展,那麼組建tomcat集羣是有效提升性能的手段。我們還是採用了Nginx來作爲請求分流的服務器,後端多個tomcat共享session來協同工作。

 

五、.優化tomcat參數

 

這裏以tomcat7的參數配置爲例,需要修改conf/server.xml文件,主要是優化連接配置,關閉客戶端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" />

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章