Megmértem a WEB/AP szerverek (Apache és Tomcat) maximális számát, amelyet egy VPS bérleti szerverrel egyidejűleg kezelni tudok.
Megjelenés dátuma:2021. január 1.
INFOMARTION > Megmértem a WEB/AP szerverek (Apache és Tomcat) maximális számát, amelyet egy VPS bérleti szerverrel egyidejűleg kezelni tudok.
Áttekintés.
Megmértem a WEB/AP szerverek (Apache és Tomcat) által egyszerre feldolgozható maximális esetszámot, és az eredményekről szeretnék írni. Kíváncsiak voltunk a maximálisan kiszolgálható kérések számára, ezért felmérést végeztünk. Használja ezt referenciaként a VPS-kiszolgáló specifikációinak kiválasztásához.
A méréseket ezúttal a WEB/AP szervereken (Apache és Tomcat) végeztük, de a csak a WEB (Apache) szervereken végzett mérésekről lásd az alábbi cikket.
Tartalomjegyzék
1. mérés
1-1. Mérési környezet
A következőkben ismertetjük azt a környezetet, amelyben a méréseket végezzük.
■Bérleti szerver információk
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Szerver információk
OS | CentOS 7.4 64bit |
---|---|
Webszerver | Apache HTTP Server 2.4.41 |
AP-kiszolgáló | Apache Tomcat 9.0.27 |
DB szerver | PostgreSQL 10.2 |
Java | OpenJDK 11 |
1-2. Mérési módszer
Ezt a JMeter segítségével szeretném mérni. A JMeter egy Java nyelven futó terhelésmérő eszköz. Az eszköz lehetővé teszi, hogy egyszerre nagyszámú kérést dobjanak be. Szeretnénk fokozatosan növelni az egyidejű kérések számát a JMeter segítségével, és addig növelni a terhelést, amíg a feldolgozást már nem lehet kezelni.
A különleges feltételek közé tartoznak.
- kérési időköz・・・5 sec.
- Egyidejű kérések száma・・・10 eset.(A mérések fokozatosan, egyenként 10 esettel növekedtek.)
- Az idő mérése・・・60 másodperc.
A mérési idő "60 másodperc", a lekérdezési intervallum pedig "5 másodperc", tehát 12 alkalommal (60÷5) ismételten szeretne hozzáférni a rendszerhez.
1-3. mérési eredmény
Végül is sokakat érdekel a következtetés, hogy milyen specifikációkat tud kezelni a szerver, és mennyit tud kezelni, ezért először a következtetést szeretném megfogalmazni.
CPU:2core memory:1GB SSD:50GB | Akár 80 egyidejű kérés is feldolgozható |
---|
A mérés eredményei a fentieket mutatták. A fenti eredményekből a következőkre lehet következtetni. Próbálja ezt kritériumként használni a szerver specifikációinak kiválasztásakor.
CPU:1core memory:512MB SSD:25GB | Egyidejűleg legfeljebb 20 kérés dolgozható fel. |
---|---|
CPU:2core memory:1GB SSD:50GB | Akár 80 egyidejű kérés is feldolgozható |
CPU:3core memory:2GB SSD:100GB | Egyidejűleg legfeljebb 200 kérés dolgozható fel. |
Megállapítottuk, hogy egy körülbelül 20 felhasználó méretű rendszer problémamentesen működik "CPU: 1 mag", "memória: 512 MB" és "SSD: 25 GB" mellett.
2. A mérési eredmények részletei
A mérési eredményeket már korábban leírtuk, de ha érdekli, hogy milyen eredményeket írtunk le, kérjük, nézze meg a mérési eredmények részleteit is, amelyeket a jövőben ismertetünk.
2-1. WEB/AP szerver (Apache, Tomcat) mérések
A kérést egy olyan forgatókönyvben dobta el, amikor a felhasználó bejelentkezik a bejelentkezési képernyőről, és a bejelentkezés után megjelenik a listaképernyő. A képernyő egyébként a Spring keretrendszer segítségével készült, beleértve a hitelesítési funkciót is.
A mérések a következő eredményeket mutatták.
- 10 egyidejű kérés esetén⇒OK
- 20 egyidejű kérés esetén⇒OK
- 30 egyidejű kérés esetén⇒OK
- 40 egyidejű kérés esetén⇒OK
- 50 egyidejű kérés esetén⇒OK
- 60 egyidejű kérés esetén⇒OK
- 70 egyidejű kérés esetén⇒OK
- 80 egyidejű kérés esetén⇒OK
- 90 egyidejű kérés esetén⇒NG
Hiba történt a 90. esetnél. Az ok az Apache-hoz való kapcsolódási hiba volt. A szerver állapota ekkor a következő volt.
- CPU kihasználtság・・・26%
- memóriahasználat・・・100%
A memória teljes hiánya volt a szűk keresztmetszet.
Az Apache Multi-Processing Module (MPM) konfigurációja a következő. Az MPM-et egyszerűen úgy magyarázzák, mint annak beállítását, hogy az Apache mennyit dolgozhat fel párhuzamosan.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
A "MaxRequestWorkers" beállítása a "250". Ez a beállítás az Apache által egyszerre feldolgozható esetek maximális számát határozza meg. '250', így 250 esetet lehetett maximálisan párhuzamosan feldolgozni, de a memóriahasználatot tekintve esetenként körülbelül 8 MB memóriát használtak.
Úgy tűnt, hogy a Java 320MB memóriát használ (248M a heap és 72M a metaspace számára), az Apache pedig 640MB memóriát (8M x 80 folyamat), és bár az Apache MPM beállítási értéke '250' volt, úgy tűnt, hogy nem lehetett több mint '80' folyamatot létrehozni.
※A szerver 1G memóriával rendelkezik, így az Apache és a Java teljes memóriája 960MB, ami majdnem a felső határon van.
Az AP szerver (Java oldal) jól működött, így a szűk keresztmetszet a WEB szerver (Apache) volt.
Amikor az Apache és a Tomcat telepítve és futtatva van, azt találtuk, hogy a "CPU: 2 mag, memória: 1 GB, SSD: 50 GB" specifikációk mellett az egyidejű hozzáférések száma "80" a határ.(Feltételezzük, hogy a Java memória beállításai 248M a heap és 72M a metaspace számára.)
2-2. ellenszolgáltatás
Innentől kezdve megfontolás tárgyává válik, de mivel a memória a szűk keresztmetszet, ha a memória változik, az egyidejűleg feldolgozható folyamatok száma is nőni fog.
【Jelen vannak.(memory1GB)】
- memory:1GB
- Apache szálak száma:80 eset.
- Memóriafogyasztás szálanként az Apache-ban.:8MB
- Apache memóriafogyasztás:640MB(80 eset.×8MB)
- Tomcat memóriafogyasztás:320MB(248 millió EUR a HEAP számára.、72m a metatér esetében.)
- Az Apache+Tomcat memóriafogyasztása:960MB
【a változás után(memory2GB)】
- memory:2GB
- Apache szálak száma:200 eset
- Memóriafogyasztás szálanként az Apache-ban.:8MB
- Apache memóriafogyasztás:1600MB(200 eset×8MB)
- Tomcat memóriafogyasztás:320MB(248 millió EUR a HEAP számára.、72m a metatér esetében.)
- Az Apache+Tomcat memóriafogyasztása:1920MB
2 GB memóriával akár 200 eset egyidejű feldolgozása is lehetséges. Ha a memóriát 3GB-ra növeljük, úgy tűnik, hogy több egyidejű feldolgozás végezhető el, de az Apache MPM "MaxRequestWorkers (az egyidejűleg feldolgozható esetek maximális száma)" értéke "250", így a memória további növelése esetén itt is szükség lesz a tuningra. A Java memória tuningjára is szükség lehet. Fordítva, ha a memória felére csökken, akkor ez a következőképpen néz ki.
【a változás után(memory512GB)】
- memory:512GB
- Apache szálak száma:20 eset
- Memóriafogyasztás szálanként az Apache-ban.:8MB
- Apache memóriafogyasztás:160MB(20 eset×8MB)
- Tomcat memóriafogyasztás:320MB(248 millió EUR a HEAP számára.、72m a metatér esetében.)
- Az Apache+Tomcat memóriafogyasztása:480MB
3. összefoglaló
A WEB/AP szerverek (Apache és Tomcat) által egyszerre feldolgozható maximális esetszám mérésének eredményeit ismertetjük. Megállapítottuk, hogy egy körülbelül 20 felhasználó méretű rendszer problémamentesen működik "CPU: 1 mag", "memória: 512 MB" és "SSD: 25 GB" mellett.
A felmérés azon a feltételezésen alapul, hogy más szoftverek nem futnak marginális teljesítményen. Ajánlatos egy kis mozgástérrel rendelkező specifikációt választani, mivel ez egy határérték.
Köszönjük, hogy a végéig figyeltek.