Konfiguriranje spremišta niti za Java web poslužitelje

1. Uvod

U ovom uputstvu pogledat ćemo konfiguraciju spremišta niti za Java web poslužitelje aplikacija kao što su Apache Tomcat, Glassfish Server i Oracle Weblogic.

2. Skupine niti poslužitelja

Skupove poslužiteljskih niti koristi i njima upravlja poslužitelj web aplikacija za postavljenu aplikaciju. Ova spremišta niti postoje izvan web spremnika ili servleta, tako da ne podliježu istoj granici konteksta.

Za razliku od niti aplikacije, niti poslužitelja postoje i nakon zaustavljanja postavljene aplikacije.

3. Apache Tomcat

Prvo, možemo konfigurirati Tomcatovo spremište niti poslužitelja putem Izvršitelj klasa konfiguracije u našem poslužitelj.xml:

minSpareThreads je najmanji bazen koji će biti, uključujući pri pokretanju. maxThreads je najveći bazen koji će biti prije nego što poslužitelj počne postavljati zahtjeve u redove čekanja.

Tomcat zadane vrijednosti iznosi 25, odnosno 200. U ovoj smo konfiguraciji spremište niti učinili nešto manjim od zadanog.

3.1. Ugrađeni Tomcat

Slično tome, možemo izmijeniti ugrađeni Tomcat poslužitelj za Spring Boot da konfigurira spremište niti postavljanjem svojstva aplikacije:

server.tomcat.max-niti = 250

Počevši od Boot 2.3, svojstvo se promijenilo u:

server.tomcat.threads.max = 250

4. Staklena ribica

Dalje, ažurirajmo naš Glassfish poslužitelj.

Glassfish koristi administrativnu naredbu za razliku od Tomcatove XML konfiguracijske datoteke, poslužitelj.xml. Od upita pokrećemo:

create-threadpool

Možemo dodati na create-threadpool zastave maxthreadpoolsize i minthreadpoolsize. Djeluju slično Tomcat-u minSpareThreads i maxThreads:

--maxthreadpoolsize 250 --minthreadpoolsize 25

Također možemo odrediti koliko dugo nit može biti u stanju mirovanja prije povratka u spremište:

--idletimeout = 2

A zatim, na kraju dostavljamo ime našeg spremišta niti:

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

5. Weblogic

Oracle Weblogic daje nam mogućnost da izmijenimo spremište niti koje se samostalno podešava pomoću programa WorkManager.

Slično redovima niti, WorkManager upravlja spremištem niti kao red. Međutim, WorkManager dodaje dinamičke niti na temelju protoka u stvarnom vremenu. Weblogic redovito provodi analizu protoka kako bi optimizirao korištenje niti.

Što to znači za nas? To znači da, iako možemo izmijeniti spremište niti, web poslužitelj na kraju će odlučiti hoće li stvoriti nove niti.

Svoje spremište niti možemo konfigurirati u Weblogic Admin Console:

Ažuriranje Samopodešavanje minimalne veličine bazena navoja i Maksimalna veličina bazena samonaštimajućeg navoja vrijednosti postavljaju minimalne i maksimalne granice za WorkManagers.

Primijetite Maksimalno vrijeme zaglavljivanja navoja i Interval vremena zaglavljivanja navoja vrijednosti. Oni pomažu WorkManageru klasificirati zaglavljene niti.

Ponekad dugotrajni postupak može uzrokovati nakupljanje zaglavljenih niti. WorkManager će stvoriti nove niti iz spremišta niti kako bi ih nadoknadio. Svako ažuriranje ovih vrijednosti moglo bi produžiti vrijeme kako bi postupak mogao završiti.

Zaglavljene niti mogu ukazivati ​​na probleme s kodom, pa je uvijek najbolje riješiti osnovni uzrok, a ne koristiti zaobilazno rješenje.

6. Zaključak

U ovom smo kratkom članku pogledali više načina za konfiguriranje spremišta niti poslužitelja aplikacija.

Iako postoje razlike u načinu na koji aplikacijski poslužitelji upravljaju različitim spremištima niti, oni su konfigurirani pomoću sličnih koncepata.

Na kraju, sjetimo se da promjena vrijednosti konfiguracije za web poslužitelje nisu prikladni popravci za loše izvedbene kodove i loš dizajn dizajna.


$config[zx-auto] not found$config[zx-overlay] not found