Konfigurácia oblastí vlákien pre webové servery Java

1. Úvod

V tomto výučbe sa pozrieme na konfiguráciu fondu vlákien pre servery webových aplikácií Java, ako sú Apache Tomcat, Glassfish Server a Oracle Weblogic.

2. Skupiny vlákien servera

Fondy serverových vlákien sa používajú a spravujú serverom webových aplikácií pre nasadenú aplikáciu. Tieto oblasti vlákien existujú mimo webového kontajnera alebo servletu, takže nepodliehajú rovnakej hranici kontextu.

Na rozdiel od aplikačných vlákien existujú serverové vlákna aj po zastavení nasadenej aplikácie.

3. Apache Tomcat

Najskôr môžeme nakonfigurovať fond vlákien servera Tomcat cez Exekútor konfiguračná trieda v našej server.xml:

minSpareThreads je najmenší, aký bude fond, a to aj pri štarte. maxThreads je najväčší, aký bazén bude pred serverom začne radiť požiadavky.

Tomcat ich predvolene nastavuje na 25, respektíve 200. V tejto konfigurácii sme zmenšili fond vlákien o niečo menší ako predvolený.

3.1. Vložený Tomcat

Podobne môžeme zmeniť vložený server Tomcat pre Spring Boot tak, aby nakonfiguroval fond vlákien nastavením vlastnosti aplikácie:

server.tomcat.max-threads = 250

Od verzie Boot 2.3 sa vlastnosť zmenila na:

server.tomcat.threads.max = 250

4. Sklenené rybky

Ďalej aktualizujeme náš server Glassfish.

Glassfish používa príkaz administrátora na rozdiel od konfiguračného súboru XML spoločnosti Tomcat, server.xml. Po výzve spustíme:

create-threadpool

Môžeme pridať do create-threadpool vlajky maxthreadpoolsize a minthreadpoolsize. Fungujú podobne ako Tomcat minSpareThreads a maxThreads:

--maximálna veľkosť závitov 250 --minútová veľkosť závitov 25

Môžeme tiež určiť, ako dlho môže byť vlákno nečinné pred návratom do fondu:

--idletimeout = 2

A potom na konci zadáme názov nášho fondu vlákien:

asadmin> create-threadpool --maxthreadpoolsize 250 --minthreadpoolsize 25 --idletimeout = 2 threadpool-1

5. Weblogic

Oracle Weblogic nám dáva možnosť meniť fond samoladiacich vlákien pomocou WorkManageru.

Podobne ako vo frontoch vlákien, WorkManager spravuje fond vlákien ako frontu. WorkManager však pridáva dynamické vlákna založené na priepustnosti v reálnom čase. Weblogic pravidelne vykonáva analýzu priepustnosti, aby optimalizoval využitie vlákna.

Čo to pre nás znamená? Znamená to, že hoci môžeme zmeniť fond vlákien, webový server nakoniec rozhodne o tom, či umiestniť nové vlákna.

Náš fond vlákien môžeme nakonfigurovať v administrátorskej konzole Weblogic:

Aktualizuje sa Samoladiaca minimálna veľkosť skupiny závitov a Samoladiaca závitová maximálna veľkosť bazénu hodnoty nastavujú minimálnu a maximálnu hranicu pre WorkManagers.

Všimnite si Maximálny čas zaseknutej nite a Interval časovača zaseknutého vlákna hodnoty. Pomáhajú WorkManageru klasifikovať uviaznuté vlákna.

Dlhodobý proces môže niekedy spôsobiť nahromadenie uviaznutých vlákien. WorkManager na vyrovnanie vytvorí nové vlákna z fondu vlákien. Akákoľvek aktualizácia týchto hodnôt by mohla predĺžiť čas potrebný na dokončenie procesu.

Uviaznuté vlákna môžu naznačovať problémy s kódom, takže je vždy lepšie riešiť hlavnú príčinu, ako použiť alternatívne riešenie.

6. Záver

V tomto rýchlom článku sme sa zaoberali viacerými spôsobmi konfigurácie oblastí vlákien aplikačného servera.

Aj keď existujú rozdiely v tom, ako aplikačné servery spravujú rôzne oblasti vlákien, konfigurujú sa pomocou podobných konceptov.

Na záver si pripomeňme, že zmena konfiguračných hodnôt pre webové servery nie je vhodnou opravou pre zle fungujúci kód a zlý dizajn aplikácie.