Zmeral som maximálny počet WEB/AP serverov (Apache a Tomcat), ktoré dokážu súčasne spracovať pomocou prenajatého VPS servera.


Dátum vydania:1. januára 2021.



INFOMARTION > Zmeral som maximálny počet WEB/AP serverov (Apache a Tomcat), ktoré dokážu súčasne spracovať pomocou prenajatého VPS servera.

Prehľad.

Zmeral som maximálny počet prípadov, ktoré môžu WEB/AP servery (Apache a Tomcat) spracovať súčasne, a rád by som napísal o výsledkoch. Boli sme zvedaví na maximálny počet požiadaviek, ktoré sa dajú vybaviť, preto sme uskutočnili prieskum. Použite ho ako referenciu pri výbere špecifikácií servera VPS.

Tentoraz sa merania uskutočnili na serveroch WEB/AP (Apache a Tomcat), ale v článku nižšie nájdete len merania na serveri WEB (Apache).

Pomocou prenajatého servera VPS som zmeral maximálny počet prípadov, ktoré dokáže webový server (Apache) spracovať súčasne.

Obsah

  1. meranie
  2. Podrobnosti o výsledkoch merania
  3. zhrnutie

1. meranie

1-1. Prostredie merania

Nasleduje prostredie, v ktorom sa budú vykonávať merania.

■Informácie o prenajatom serveri

CPU2core
memory1GB
SSD50GB

■Informácie o serveri

OSCentOS 7.4 64bit
Webový serverApache HTTP Server 2.4.41
Server APApache Tomcat 9.0.27
Server DBPostgreSQL 10.2
JavaOpenJDK 11

1-2. Metóda merania

Chcel by som to zmerať pomocou JMeter. JMeter je nástroj na meranie záťaže, ktorý beží v jazyku Java. Tento nástroj umožňuje hádzať veľký počet požiadaviek súčasne. Chceli by sme postupne zvyšovať počet simultánnych požiadaviek pomocou JMeter a zvyšovať záťaž, až kým sa spracovanie nebude dať zvládnuť.

Špecifické podmienky zahŕňajú.

  • interval žiadosti・・・5 sekúnd.
  • Počet súbežných požiadaviek・・・10 prípadov.(Merania sa postupne zvyšovali vždy o 10 prípadov.)
  • Meranie času・・・60 sekúnd.

Čas merania je "60 sekúnd" a interval požiadavky "5 sekúnd", takže chcete opakovane pristupovať k systému 12-krát (60÷5).

1-3. výsledok merania

Nakoniec mnohých ľudí zaujíma záver, aké špecifikácie server zvládne a koľko zvládne, preto by som chcel najprv uviesť záver.

CPU:2core
memory:1GB
SSD:50GB
Možno spracovať až 80 súbežných požiadaviek

Výsledky tohto merania ukázali vyššie uvedené skutočnosti. Z uvedených výsledkov možno vyvodiť nasledujúce závery. Skúste to použiť ako kritérium pri výbere špecifikácií servera.

CPU:1core
memory:512MB
SSD:25GB
Súčasne možno spracovať až 20 požiadaviek.
CPU:2core
memory:1GB
SSD:50GB
Možno spracovať až 80 súbežných požiadaviek
CPU:3core
memory:2GB
SSD:100GB
Súčasne možno spracovať až 200 požiadaviek.

Zistilo sa, že systém s veľkosťou približne 20 používateľov by fungoval bez problémov s "CPU: 1core", "memory: 512MB" a "SSD: 25GB".

2. Podrobnosti o výsledkoch merania

Výsledky merania sme opísali skôr, ale ak vás zaujíma, aké výsledky sme opísali, pozrite si aj podrobnosti o výsledkoch merania, ktoré budú opísané v budúcnosti.

2-1. Merania WEB/AP servera (Apache, Tomcat)

Požiadavka bola vyhodená v scenári, keď sa používateľ prihlási z prihlasovacej obrazovky a po prihlásení sa zobrazí obrazovka zoznamu. Mimochodom, obrazovka je vytvorená pomocou rámca Spring vrátane funkcie overovania.

Merania ukázali tieto výsledky.

  • Pre 10 súčasných požiadaviek⇒OK
  • Pre 20 súčasných požiadaviek⇒OK
  • Pre 30 súčasných požiadaviek⇒OK
  • Pre 40 súčasných požiadaviek⇒OK
  • Pre 50 súčasných požiadaviek⇒OK
  • Pre 60 súčasných požiadaviek⇒OK
  • Pre 70 súčasných požiadaviek⇒OK
  • Pre 80 súčasných požiadaviek⇒OK
  • Pre 90 súčasných požiadaviek⇒NG

Chyba nastala v 90. prípade. Príčinou bola chyba pripojenia k Apache. Stav servera bol v tomto čase nasledovný.

  • Využitie CPU・・・26%
  • využitie pamäte・・・100%

Úzkym miestom bol úplný nedostatok pamäte.

Pre trochu náročnejších používateľov je konfigurácia viacprocesorového modulu Apache (MPM) nasledovná. MPM sa jednoducho vysvetľuje ako nastavenie toho, koľko môže Apache spracovávať paralelne.

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>

Zaujímavé je nastavenie "250" pre "MaxRequestWorkers". Ide o nastavenie maximálneho počtu prípadov, ktoré môže Apache spracovať súčasne. '250', takže bolo možné paralelne spracovať maximálne 250 prípadov, ale pri pohľade na využitie pamäte bolo na jeden prípad použitých približne 8 MB pamäte.

Zdalo sa, že Java využíva 320 MB pamäte (248 MB pre haldu a 72 MB pre metapriestor) a Apache 640 MB pamäte (8 MB x 80 procesov), a hoci hodnota nastavenia MPM Apache je '250', zdalo sa, že nemôže vytvoriť viac ako '80' procesov.
※Server má 1G pamäte, takže celková pamäť pre Apache a Javu je 960 MB, čo je takmer na hornej hranici.

Server AP (na strane Java) fungoval dobre, takže úzkym miestom bol WEB server (Apache).

Keď sú nainštalované a spustené Apache a Tomcat, zistili sme, že pri špecifikáciách "CPU: 2core, memory: 1GB, SSD: 50GB" je limitom počet súčasných prístupov "80".(Predpokladáme, že nastavenia pamäte pre Javu sú 248M pre haldu a 72M pre metapriestor.)

2-2. zváženie

Odtiaľto sa začína uvažovať, ale keďže úzkym miestom je pamäť, ak sa pamäť zmení, zvýši sa počet procesov, ktoré možno súbežne spracúvať.

【Prítomní.(memory1GB)】

  • memory:1GB
  • Počet vlákien Apache:80 prípadov.
  • Spotreba pamäte na vlákno v Apache.:8MB
  • Spotreba pamäte Apache:640MB(80 prípadov.×8MB)
  • Spotreba pamäte Tomcat:320MB(248 miliónov eur pre HEAP.、72 m pre metapriestor.)
  • Spotreba pamäte Apache+Tomcat:960MB

【po zmene(memory2GB)】

  • memory:2GB
  • Počet vlákien Apache:200 prípadov
  • Spotreba pamäte na vlákno v Apache.:8MB
  • Spotreba pamäte Apache:1600MB(200 prípadov×8MB)
  • Spotreba pamäte Tomcat:320MB(248 miliónov eur pre HEAP.、72 m pre metapriestor.)
  • Spotreba pamäte Apache+Tomcat:1920MB

S 2 GB pamäte môže byť možné spracovať 200 prípadov súčasne. Ak sa pamäť zvýši na 3 GB, zdá sa, že je možné vykonávať viac súbežného spracovania, ale hodnota "MaxRequestWorkers (maximálny počet súbežne spracovaných prípadov)" v MPM Apache je "250", takže v prípade ďalšieho zvýšenia pamäte bude potrebné vyladiť aj túto hodnotu. Môže byť potrebné aj ladenie pamäte Java. Naopak, ak sa pamäť zmenší na polovicu, bude to takto.

【po zmene(memory512GB)】

  • memory:512GB
  • Počet vlákien Apache:20 prípadov
  • Spotreba pamäte na vlákno v Apache.:8MB
  • Spotreba pamäte Apache:160MB(20 prípadov×8MB)
  • Spotreba pamäte Tomcat:320MB(248 miliónov eur pre HEAP.、72 m pre metapriestor.)
  • Spotreba pamäte Apache+Tomcat:480MB

3. zhrnutie

Opísané sú výsledky merania maximálneho počtu prípadov, ktoré môžu WEB/AP servery (Apache a Tomcat) spracovať v rovnakom čase. Zistilo sa, že systém s veľkosťou približne 20 používateľov by fungoval bez problémov s "CPU: 1core", "memory: 512MB" a "SSD: 25GB".

Prieskum vychádza z predpokladu, že žiadny iný softvér nepracuje s hraničným výkonom. Odporúča sa zvoliť špecifikáciu s určitou voľnosťou, pretože ide o okrajovú hodnotu.

Ďakujeme vám za sledovanie až do konca.