首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

高負載站點 Tomcat Connector 調優:Web Server 前置、叢集部署、JVM 參數計算

     編輯:Java 相關知識

單體 Tomcat 受限於線程模型,高併發下上下文切換開銷大。最佳實踐:Web Server (Apache/Nginx) 靜態分流 + Tomcat 叢集 + 負載均衡。

架構演進

  1. 單 Tomcat:靜態/動態混處,~50 併發/CPU
  2. Web Server + Tomcat:Apache 處理靜態,Tomcat 專注業務,~200 併發/CPU
  3. Web Server + Tomcat 叢集 + 負載均衡:JK Connector / mod_proxy_balancer,支援 Sticky Session、故障轉移

容量規劃公式

// 併發連接數上限(CPU 核心數為 C)
MaxConcurrent = max(500 / AvgResponseTimeMs, 200) * C

// 網卡吞吐上限(100Mbps = 12.5MB/s)
MaxConcurrent = 12500 / AvgResponseSizeKB

超過上限需擴容:增加 CPU、升級萬兆網卡、增加 Tomcat 節點。

Tomcat Connector 關鍵參數

<Connector port="8080" protocol="HTTP/1.1"
  maxThreads="200" minSpareThreads="25"
  acceptCount="100" connectionTimeout="20000"
  compression="on" compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript"
  compressionMinSize="2048"
  disableUploadTimeout="true" />
  • maxThreads:最大工作線程,建議 (CPU核心數 * 50) ~ 200
  • acceptCount:隊列長度,防止突發拒絕連接
  • compression:開啟 GZIP,減少 70%+ 傳輸量

JVM 參數建議

-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
-XX:+UseG1GC -XX:MaxGCPauseMillis=200
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/heapdump.hprof

監控指標

  • Thread Pool:currentThreadCount、currentThreadsBusy
  • Request:processingTime、errorCount
  • GC:Full GC 頻率、停頓時間

持續壓測、監控、調優,方能支撐高負載穩定運行。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved