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.

Megmértem a maximális esetszámot, amelyet a webszerver (Apache) egyidejűleg kezelni tud egy VPS bérleti szerver segítségével.

Tartalomjegyzék

  1. mérés
  2. A mérési eredmények részletei
  3. összefoglaló

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

CPU2core
memory1GB
SSD50GB

■Szerver információk

OSCentOS 7.4 64bit
WebszerverApache HTTP Server 2.4.41
AP-kiszolgálóApache Tomcat 9.0.27
DB szerverPostgreSQL 10.2
JavaOpenJDK 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.