Szálkészletek beállítása Java webszerverekhez

1. Bemutatkozás

Ebben az oktatóanyagban áttekintjük a Java webalkalmazások, például az Apache Tomcat, a Glassfish Server és az Oracle Weblogic szálkészlet-konfigurációit.

2. Szerver szálkészletek

A szerver szálkészleteket egy webalkalmazás-kiszolgáló használja és kezeli egy telepített alkalmazáshoz. Ezek a szálkészletek a webes tárolón vagy szervleten kívül léteznek, így nem vonatkoznak rájuk ugyanazon kontextushatárok.

Az alkalmazásszálaktól eltérően a kiszolgálói szálak a telepített alkalmazás leállítása után is léteznek.

3. Apache Tomcat

Először konfigurálhatjuk Tomcat szerver szálkészletét a Végrehajtó konfigurációs osztály a mi server.xml:

minSpareThreads a legkisebb a medence, beleértve az indítást is. maxThreads a legnagyobb a medence lesz mielőtt a szerver megkezdi a kérelmek sorba állítását.

A Tomcat ezeket alapértelmezés szerint 25, illetve 200 értékre állítja be. Ebben a konfigurációban a szálkészletet kissé kisebbre tettük, mint az alapértelmezett.

3.1. Beágyazott Tomcat

Hasonlóképpen módosíthatunk egy beágyazott Tomcat szervert a Spring Boot számára egy szálkészlet konfigurálásához egy alkalmazás tulajdonságának beállításával:

server.tomcat.max-threads = 250

A Boot 2.3-tól kezdődően a tulajdonság a következőre változott:

server.tomcat.threads.max = 250

4. Üveghal

Ezután frissítsük a Glassfish szervert.

A Glassfish egy admin parancsot használ, ellentétben a Tomcat XML konfigurációs fájljával, server.xml. A parancssorból futtatjuk:

create-threadpool

Hozzáadhatjuk create-threadpool a zászlók maxthreadpoolsize és menthreadpoolsize. Tomcathoz hasonlóan működnek minSpareThreads és maxThreads:

--maxthreadpoolsize 250 - minthreadpoolsize 25

Megadhatjuk azt is, hogy egy szál meddig lehet tétlen, mielőtt visszatérne a készletbe:

--idletimeout = 2

Ezután a végén megadjuk a szálkészletünk nevét:

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

5. Weblogic

Az Oracle Weblogic lehetőséget nyújt arra, hogy megváltoztassuk az önhangoló szálkészletet a WorkManagerrel.

A szálsorokhoz hasonlóan a WorkManager is egy szálkészletet kezel sorként. A WorkManager azonban dinamikus szálakat ad hozzá, valós idejű átviteli sebesség alapján. A Weblogic rendszeresen elemzi az áteresztőképességet a szálak kihasználásának optimalizálása érdekében.

Mit jelent ez számunkra? Ez azt jelenti, hogy bár módosíthatjuk a szálkészletet, a webszerver végül eldönti, hogy új szálakat hoz létre.

Konfigurálhatjuk a szálkészletünket a Weblogic Felügyeleti Konzolban:

A. Frissítése Önhangolás A szál minimális mérete és Önhangoló szál maximális medenceméret Az értékek megadják a min és max határokat a WorkManagers számára.

Figyelje meg a Beragadt menet maximális ideje és Beragadt szál időzítő intervallum értékek. Ezek segítenek a WorkManager osztályozásában az elakadt szálak.

Előfordulhat, hogy egy régóta tartó folyamat elakadt szálak felhalmozódását okozhatja. A kompenzáció érdekében a WorkManager új szálakat fog létrehozni a szálkészletből. Ezen értékek bármilyen frissítése meghosszabbíthatja a folyamat befejezésének idejét.

Az elakadt szálak a kódproblémákra utalhatnak, ezért mindig a megoldás az, hogy megoldást keressenek, és ne keressenek megoldást.

6. Következtetés

Ebben a rövid cikkben az alkalmazáskiszolgáló szálkészleteinek többféle beállítását vizsgáltuk.

Noha vannak különbségek abban, hogy az alkalmazáskiszolgálók hogyan kezelik a különféle szálkészleteket, hasonló fogalmakkal vannak konfigurálva.

Végül emlékezzünk arra, hogy a webkiszolgálók konfigurációs értékeinek megváltoztatása nem megfelelő javítás a gyengén teljesítő kódokhoz és a rossz alkalmazástervekhez.