Tomcat性能優化

Tomcat性能優化


——針對高負載、高併發下Tomcat及相關環境的調優


面臨的問題


隨着用戶數量的不斷增加,終端對服務器的訪問量也在不斷飆升。可以預見的,在不久的將來,服務器必將面臨高負載與高併發訪問的嚴峻考驗。
這是一個亟待解決的問題,如果服務器不能應對高負載、高併發的要求,那麼必將影響用戶的體驗,給用戶帶來較差的印象,更嚴重的,則可能導致服務器崩潰,使終端無法完成對用戶的響應。


優化目標


爲滿足用戶量增長的需求,希望在短期內(3-6個月)通過後臺部署環境的參數調優來達到高負載、高併發下後臺系統的良好響應效率。

優化重點


目前,後臺服務的部署方式如下圖,主要以Linux+Tomcat爲主。因此,主要的優化方向也集中在Tomcat以及其所在的Linux的參數調優。


Tomcat優化


主要優化server.xml 文件中Connector節點的參數:
1、enableLookups - 禁用DNS查詢
2、maxThreads - Tomcat可創建的最大的線程數
3、acceptCount - 指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數
4、connnectionTimeout - 網絡連接超時
5、minSpareThreads - Tomcat初始化時創建的線程數
6、maxSpareThreads - 一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程
7、啓用APR協議代替默認的Http協議

JVM內存優化


主要優化tomcat_home/bin/catalina.sh中JAVA_OPTS參數:
JAVA_OPTS=”- server -Xms【初始化內存大小】 -Xmx【可以使用的最大內存】”
另外,還可以對以下參數進行細節優化:
-XX:MinHeapFreeRatio=【百分比整數】
修改垃圾回收之後堆中可用內存的最小百分比,缺省值是40。如果垃圾回收後至少還有40%的堆內存沒有被釋放,則系統將增加堆的尺寸。
-XX:MaxHeapFreeRatio=【百分比整數】
改變垃圾回收之後和堆內存縮小之前可用堆內存的最大百分比,缺省值爲70。這意味着如果在垃圾回收之後還有大於70%的堆內存,則系統就會減少堆的尺寸。
-XX:NewSize=【整數,單位B】
爲已分配內存的對象中的Eden代設置缺省的內存尺寸。它的缺省值是640K。(-server選項把缺省尺寸增加到2M。)
-XX:MaxNewSize=【整數,單位B】
允許改變初期對象空間的上限,新建對象所需的內存就是從這個空間中分配來的,這個選項的缺省值是640K。(-server選項把缺省尺寸增加到2M。)
-XX:NewRatio=【value】
改變新舊空間的尺寸比例,這個比例的缺省值是8,意思是新空間的尺寸是舊空間的1/8。
-XX:SurvivorRatio=【number】
改變Eden對象空間和殘存空間的尺寸比例,這個比例的缺省值是10,意思是Eden對象空間的尺寸比殘存空間大survivorRatio+2倍。
-XX:TargetSurvivorRatio=【百分比整數】
設定您所期望的空間提取後被使用的殘存空間的百分比,缺省值是50。
-XX:MaxPermSize=【整數,單位MB】
長久代(permanent generation)的尺寸,缺省值爲32(32MB)。

其他


爲使Tomcat中的參數優化效果更好,還需要一些環境優化,如:
1、Linux下單個線程可以打開的最大句柄數限制
2、Linux網絡參數優化,提高系統負載
3、Mysql的最大連接數限制
4、Redis優化
5、SQL優化
      SQL優化主要是將關聯查詢拆分成單表查詢,並針對查詢條件字段做索引的方式優化


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