好程式設計師分享Java常見面試題Tomcat最佳化經驗

好程式設計師IT發表於2019-10-10

  好程式設計師分享 Java 常見 面試題Tomcat 最佳化經驗 Tomcat 作為 Web 伺服器,它的處理效能直接關係到使用者體驗,下面是幾種常見的最佳化措施:

 

一、掉對web.xml 的監視,把 jsp 提前編輯成 Servlet 。有富餘實體記憶體的情況,加大 tomcat 使用的 jvm 的記憶體

 

二、伺服器資源

 

伺服器所能提供CPU 、記憶體、硬碟的效能對處理能力有決定性影響。

 

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

 

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

 

(3) 硬碟主要問題就是讀寫效能,當大量檔案進行讀寫時,磁碟極容易成為效能瓶頸。最好的辦法還是利用下面提到的快取。

 

三、利用快取和壓縮

 

對於靜態頁面最好是能夠快取起來,這樣就不必每次從磁碟上讀。這裡我們採用了Nginx 作為快取伺服器,將圖片、 css js 檔案都進行了快取,有效的減少了後端 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" />

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2659404/,如需轉載,請註明出處,否則將追究法律責任。

相關文章