tomcat配置調優記錄

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"
  1. Xms與Xmx廣泛選擇配置相同的大小,實際大小根據實際狀況調整,由小向大增長。
  2. XX:PermSize設置堆棧永久區起始大小,
    XX:MaxPermSize設置堆棧永久區最大大,其實設置比默認值大寫便可,或者默認也能夠。做者這個這兩個值,是由於出現過永久區內存溢出,才進行設定的。
  3. UseParallelOldGC、PrintGCDateStamps、PrintGCDetails、Xloggc:/opt/tomcat/log/gc.log設置GClog日誌,這個對分析tomcat中JVM內存使用狀況很是有效。
  4. XX:+HeapDumpOnOutOfMemoryError、XX:HeapDumpPath=/opt/tomcat/heap.bin"設置內存溢出時,輸出HeapDump,具體如何使用分析HeapDump文件,請參考:http://vekergu.blog.51cto.com/9966832/1619640
  5. 調整合適的JVM內存大小,開啓GClog和HeapDump便可。
相關文章
相關標籤/搜索