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


Dátum vydania:31. decembra 2020.



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

Prehľad.

Zmeral som maximálny počet prípadov, ktoré dokáže webový server (Apache) spracovať v rovnakom čase, 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 len na serveri WEB (Apache), ale v článku nižšie nájdete merania na serveroch WEB/AP (Apache a Tomcat).

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

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

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 do systému vstúpiť 12-krát (60÷5) opakovane.

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
Súčasne možno spracovať až 120 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ž 60 požiadaviek.
CPU:2core
memory:1GB
SSD:50GB
Súčasne možno spracovať až 120 požiadaviek.
CPU:3core
memory:2GB
SSD:100GB
Súčasne možno spracovať až 240 požiadaviek.

Dokonca aj pri špecifikáciách "CPU: 1core", "memory: 512MB" a "SSD: 25GB" sa zistilo, že systém pre približne 60 ľudí môže fungovať bez problémov.

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 servera (Apache)

Opakované požiadavky boli vyhodené proti stránkam vytvoreným v jazyku HTML. Ide o jednoduchú stránku bez zložitého spracovania v jazyku PHP alebo v jazyku JavaScript.

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⇒OK
  • Pre 100 súčasných požiadaviek⇒OK
  • 110 súčasných požiadaviek⇒OK
  • Pre 120 súčasných požiadaviek⇒OK
  • Pre 130 súčasných požiadaviek⇒NG

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

  • Využitie CPU・・・26%
  • miera využitia 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 používa 960 MB pamäte (8M x 120 procesov) a hodnota nastavenia bola "250", ale zdalo sa, že nie je možné vytvoriť viac ako "120" procesov.
※Pamäť servera je takmer na hranici 1G.

Pri skutočnej prevádzke servera, ak sú zahrnuté aj PHP a Java, je limit približne 100 prípadov, a ak je priestor, môže sa paralelne spracovávať 80 prípadov.

Keď je nainštalovaný a spustený iba Apache so špecifikáciami "CPU: 2core, memory: 1GB, SSD: 50GB", zistilo sa, že počet súčasných prístupov "120" je limit.

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 aj počet procesov, ktoré možno súbežne spracúvať.

【Prítomní.(memory1GB)】

  • memory:1GB
  • Počet vlákien Apache:120 prípadov
  • Spotreba pamäte na vlákno v Apache:8MB
  • Spotreba pamäte Apache:960MB(120 prípadov×8MB)

【po zmene(memory2GB)】

  • memory:2GB
  • Počet vlákien Apache:240 prípadov.
  • Spotreba pamäte na vlákno v Apache:8MB
  • Spotreba pamäte Apache:1920MB(240 prípadov.×8MB)

Ak sa pamäť zvýši na 2 GB, bude možné zdvojnásobiť počet prípadov na približne 240 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. Naopak, ak sa pamäť zmenší na polovicu, bude to takto.

【po zmene(memory512GB)】

  • memory:512GB
  • Počet vlákien Apache:60 prípadov.
  • Spotreba pamäte na vlákno v Apache:8MB
  • Spotreba pamäte Apache:480MB(60 prípadov.×8MB)

3. zhrnutie

Zmerali sme maximálny počet prípadov, ktoré dokáže webový server (Apache) spracovať v rovnakom čase. Zistilo sa, že systém s približne 60 ľuďmi môže bez problémov fungovať 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.