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

JVM tuning pro produkcni servery

08. 05. 2011 1 min čtení CORE SYSTEMSdevelopment

Nasadit Java aplikaci na server s vychozim JVM nastavenim je jako koupit sportovni auto a jezdit jen na dvojku. Spravne nastaveni muze znamenat rozdil mezi 100 ms a 5 sekund response time.

Heap size

Zakladni pravidlo: -Xms a -Xmx nastavte na stejnou hodnotu. Dynamicke zmeny heap size zpusobuji full GC pauses. Na serverech s 16 GB RAM typicky alokujeme 8-10 GB pro JVM heap. PermGen: 256-512 MB pro enterprise aplikace.

Garbage Collection — CMS

Pro webove aplikace pouzivame Concurrent Mark Sweep collector. Parallel GC ma lepsi throughput, ale jeho stop-the-world pauses mohou trvat sekundy. CMSInitiatingOccupancyFraction=70 — CMS zacne pri 70 procent zaplneni old generation.

GC logging

Na kazdem produkcnim serveru zapnute GC logovani. Analyzujeme nastrojem GCViewer. Cilove metriky: minor GC pod 50 ms, full GC mene nez 1x za hodinu, celkovy GC cas pod 5 procent.

Thread stack a monitoring

Snizenim -Xss na 512 KB usetrite pamet pro vice threadu. JMX monitoring pres Nagios: heap utilization, thread count, GC activity. Alert pri heap nad 85 procent.

Shrnuti

Xms = Xmx. CMS pro webove aplikace. GC logovani vzdy zapnute. Monitorujte pres JMX. Testujte pod zatezi na staging pred produkci.

jvmjavaperformancegc