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"