好程式設計師分享Java常見面試題Tomcat最佳化經驗
好程式設計師分享 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師分享:Java面試題常見問題程式設計師Java面試題
- 好程式設計師Java教程分享:Java工程師常見面試題程式設計師Java工程師面試題
- 好程式設計師Java教程分享XML常見面試題程式設計師JavaXML面試題
- 好程式設計師Java教程分享JavaScript常見面試題一程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題五程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題四程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題三程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題二程式設計師JavaScript面試題
- 好程式設計師web前端分享常見面試題程式設計師Web前端面試題
- 好程式設計師Java教程分享Java面試常見技術難題程式設計師Java面試
- 好程式設計師Java教程分享Java多執行緒常見面試題程式設計師Java執行緒面試題
- 好程式設計師Java學習路線分享Spring常見面試題程式設計師JavaSpring面試題
- 好程式設計師Python教程分享常見的Python面試題程式設計師Python面試題
- 好程式設計師Python教程分享Python常見面試問題程式設計師Python面試
- 好程式設計師web前端教程分享Jquery常見面試題程式設計師Web前端jQuery面試題
- 【200人面試經驗】,程式設計師面試,常見面試題解析程式設計師面試題
- 好程式設計師Java培訓分享Java多執行緒常見面試問題程式設計師Java執行緒面試
- Java程式設計師面試常見問題Java程式設計師面試
- 好程式設計師web前端教程分享常見基礎面試題之效能最佳化程式設計師Web前端面試題
- 好程式設計師Java教程分享經典Java main方法面試題程式設計師JavaAI面試題
- 好程式設計師web前端教程分享HTML/CSS部分常見面試題程式設計師Web前端HTMLCSS面試題
- 好程式設計師Java教程分享Java面試題之Hibernate程式設計師Java面試題
- 好程式設計師Java分享Javamain十個面試題程式設計師JavaAI面試題
- 好程式設計師web前端分享HTML5常見面試題集錦五程式設計師Web前端HTML面試題
- 好程式設計師web前端分享HTML5常見面試題集錦四程式設計師Web前端HTML面試題
- 好程式設計師web前端分享HTML5常見面試題集錦三程式設計師Web前端HTML面試題
- 好程式設計師web前端分享HTML5常見面試題集錦二程式設計師Web前端HTML面試題
- 好程式設計師Java教程分享Java面試妙招程式設計師Java面試
- 好程式設計師Java教程分享jsp相關面試題程式設計師JavaJS面試題
- 好程式設計師Java培訓分享Mybatis面試題集合程式設計師JavaMyBatis面試題
- VUE的面試題分享-好程式設計師Vue面試題程式設計師
- 好程式設計師Java教程分享Java中經常出現的問題程式設計師Java
- 好程式設計師web前端學習路線分享HTML5常見面試題程式設計師Web前端HTML面試題
- JAVA程式設計師面試題庫分享Java程式設計師面試題
- 好程式設計師Java培訓分享Java面試題集合篇一程式設計師Java面試題
- 好程式設計師Java培訓分享Java面試題集合篇二程式設計師Java面試題
- 好程式設計師Java培訓分享Java中級面試題合集程式設計師Java面試題
- 好程式設計師雲端計算教程分享Linux雲端計算面試常見問題一程式設計師Linux面試