tomcat 調優

tomcat配置調優記錄

server.xml
<Connector port="8090"
protocol="HTTP/1.1"
maxHttpHeaderSize="81920"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="2000"
minProcessors="100"
maxProcessors="2000"
enableLookups="false"
URIEncoding="utf-8"
acceptCount="500"
redirectPort="8443"
connectionTimeout="30000"
disableUploadTimeout="true"/>
maxHttpHeaderSize:HTTP請求和響應頭的最大量,以字節爲單位,默認值爲4096字節
maxThreads: 起動的最大線程數,這個值也決定了服務器可以同時響應客戶請求的最大數。一般建議在 500 ~ 800,根據硬件設施和業務來判斷
minSpareThreads 初始化時創建的線程數
maxSpareThreads 一旦創建的線程超過這個值,Tomcat就會關閉不再需要的socket線程。
minProcessors 最小的處理線程數,即使沒有任何HTTP請求,TOMCAT也保持至少這麼多線程以等待處理。
maxProcessors 最大連接線程數,併發處理的最大請求數,
enableLookups 如果爲true,則可以通過調用request.getRemoteHost()進行DNS查詢來得到遠程客戶端的實際主機名,若爲false則不進行DNS查詢,而是返回其ip地址
acceptCount:當所有可以使用的處理請求的線程都被用光時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理,而返回Connection refused錯誤。

Tomcat內存優化主要是對 tomcat 啓動參數優化
catalina.sh
JAVA_OPTS參數說明

#-server :啓用jdk 的 server 版;
#-Xmx1024m :設置JVM最大可用內存爲1024m
#-Xms1024m :設置JVM初始可用內存爲1024m
#-Xmn384m :設置年輕代大小爲384m
#-Xss128k :設置每個線程的堆棧大小爲128k
#-XX:NewRatio=4 :設置年輕代與年老代的比值爲4
#-XX:SurvivorRatio=4 :設置年輕代中Eden區與Survivor區的大小比值爲4
#-XX:PermSize=64m :設置堆棧永久區起始大小爲64m
#-XX:MaxPermSize=128m :設置堆棧永久區最大大小爲128m
#-XX:MaxTenuringThreshold=0 :設置垃圾最大年齡爲0
#-XX:+UseParallelGC :選擇垃圾收集器爲並行收集器
#-XX:ParallelGCThreads=8 :配置並行收集器的線程數
#-XX:+UseParallelOldGC :配置年老代垃圾收集方式爲並行收集
#-XX:+UseAdaptiveSizePolicy :並行收集器會自動選擇年輕代區大小和相應的Survivor區比例,
以達到目標系統規定的最低響應時>間或者收集頻率等,此值建議使用並行收集器時,一直打開。

JAVA_OPTS="
-server
-Xms1024m
-Xmx1024m
-Xmn384m
-XX:PermSize=64m
-XX:MaxPermSize=128m
-XX:+UseParallelOldGC
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-Xloggc:/data/tomcat/8082/logs/gc.log
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/data/tomcat/8081/heap.bin"
Xms與Xmx普遍選擇配置相同的大小,實際大小根據實際情況調整,由小向大增加。
XX:PermSize設置堆棧永久區起始大小,
XX:MaxPermSize設置堆棧永久區最大大,其實設置比默認值大寫即可,或者默認也可以。作者這個這兩個值,是因爲出現過永久區內存溢出,才進行設定的。
UseParallelOldGC、PrintGCDateStamps、PrintGCDetails、Xloggc:/opt/tomcat/log/gc.log設置GClog日誌,這個對分析tomcat中JVM內存使用情況非常有效。
XX:+HeapDumpOnOutOfMemoryError、XX:HeapDumpPath=/opt/tomcat/heap.bin"設置內存溢出時,輸出HeapDump,具體如何使用分析HeapDump文件,請參考:http://vekergu.blog.51cto.com/9966832/1619640
調整合適的JVM內存大小,開啓GClog和HeapDump即可。

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