Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Apache Tomcat tuning pro vysoke zateze

26. 02. 2013 1 min čtení CORE SYSTEMSinfrastructure

Apache Tomcat s vychozim nastavenim zvladne desitky soubeznnych uzivatelu. Pro stovky a tisice potrebujete tuning. Tady jsou nase zkusenosti s Tomcat 7 pod vysokou zatezi.

Connector — NIO vs. BIO

Vychozi BIO connector (blocking I/O) alokuje thread per connection. S 200 concurrent connections = 200 threadu. NIO connector (non-blocking I/O) zvlada tisice spojeni s desitkami threadu. Pro produkcni servery vzdy NIO: protocol=org.apache.coyote.http11.Http11NioProtocol.

Thread pool

maxThreads: maximalni pocet threadu pro zpracovani requestu. Pro NIO: 150-300 podle zateze. acceptCount: fronta requestu cekajicich na thread — pokud je plna, server vraci 503. minSpareThreads: minimalni pocet pripravenych threadu.

Keep-Alive

HTTP keep-alive drzi spojeni otevrene pro vicee requestu. Snizuje overhead TCP handshaku. maxKeepAliveRequests=100, keepAliveTimeout=15000 ms. Na loadbalanced prostredi muze byt agresivnejsi keepalive kontraproduktivni.

Komprese

compression=on, compressionMinSize=2048, compressibleMimeType pro text/html, text/css, application/javascript. Usetri bandwidth za cenu CPU. Pro staticke soubory lepsi komprimovat predem na disku.

Access log

Zapnete access log s response time patternem (%D). Analyza access logu odhaluje pomale requesty, ktere JMX metriky nezachyti.

Shrnuti

NIO connector, spravne nastaveny thread pool, keep-alive a komprese. Merte pred a po zmene — tuning bez benchmarku je hadani.

tomcattuningperformancejava