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


Megjelenés dátuma:2020. december 31.



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

Áttekintés.

Megmértem a webszerver (Apache) á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 csak a WEB (Apache) szerveren végeztük, de a WEB/AP szervereken (Apache és Tomcat) végzett mérésekről lásd az alábbi cikket.

Megmértem a WEB/AP szerverek (Apache és Tomcat) maximális számát, amelyet egy VPS bérleti szerverrel egyidejűleg kezelni tudok.

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

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
Egyidejűleg legfeljebb 120 kérés dolgozható fel.

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 60 kérés dolgozható fel.
CPU:2core
memory:1GB
SSD:50GB
Egyidejűleg legfeljebb 120 kérés dolgozható fel.
CPU:3core
memory:2GB
SSD:100GB
Egyidejűleg legfeljebb 240 kérés dolgozható fel.

Még a "CPU: 1 mag", "memória: 512 MB" és "SSD: 25 GB" specifikációkkal is úgy találták, hogy egy körülbelül 60 fős rendszer gond nélkül működhet.

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 szerver (Apache) mérések

A HTML-ben létrehozott oldalakkal szemben ismételt kéréseket dobtak. Ez egy egyszerű oldal, PHP-feldolgozás vagy bonyolult JavaScript nélkül.

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⇒OK
  • 100 egyidejű kérés esetén⇒OK
  • 110 egyidejű kérés⇒OK
  • 120 egyidejű kérés esetén⇒OK
  • 130 egyidejű kérés esetén⇒NG

Hiba történt a 130. 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álati arány・・・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 960 MB memóriát használ (8M x 120 folyamat), és a beállítási érték "250" volt, de úgy tűnt, hogy nem lehetett "120" folyamatnál többet létrehozni.
※A szerver memóriája már majdnem elérte az 1G-os határértéket.

A szerver tényleges működtetésekor, ha a PHP és a Java is szerepel, a limit 100 eset körül van, és ha van hely, 80 esetet lehet párhuzamosan feldolgozni.

Ha csak az Apache van telepítve és fut, a "CPU: 2 mag, memória: 1 GB, SSD: 50 GB" specifikációkkal, az egyidejű hozzáférések száma "120" volt a határérték.

2-2. ellenszolgáltatás

Innentől válik megfontolás tárgyává, de mivel a memória a szűk keresztmetszet, ha a memória változik, az egyidejűleg feldolgozható folyamatok száma is nő.

【Jelen vannak.(memory1GB)】

  • memory:1GB
  • Apache szálak száma:120 eset
  • Memóriafogyasztás szálanként az Apache-ban.:8MB
  • Apache memóriafogyasztás:960MB(120 eset×8MB)

【a változás után(memory2GB)】

  • memory:2GB
  • Apache szálak száma:240 eset.
  • Memóriafogyasztás szálanként az Apache-ban.:8MB
  • Apache memóriafogyasztás:1920MB(240 eset.×8MB)

Ha a memóriát 2 GB-ra növeljük, akkor az esetek száma megduplázható, körülbelül 240-re növelhető egyidejűleg. 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. 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:60 eset.
  • Memóriafogyasztás szálanként az Apache-ban.:8MB
  • Apache memóriafogyasztás:480MB(60 eset.×8MB)

3. összefoglaló

Megmértük a webszerver (Apache) által egyszerre feldolgozható maximális esetszámot. Kiderült, hogy egy körülbelül 60 fős rendszer gond nélkül működhet "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.