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).
Obsah
1. meranie
1-1. Prostredie merania
Nasleduje prostredie, v ktorom sa budú vykonávať merania.
■Informácie o prenajatom serveri
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Informácie o serveri
OS | CentOS 7.4 64bit |
---|---|
Webový server | Apache HTTP Server 2.4.41 |
Server AP | Apache Tomcat 9.0.27 |
Server DB | PostgreSQL 10.2 |
Java | OpenJDK 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.
■INFORMATION
Kliknutím sem prejdite na hornú stránku s informáciami.
■PROFILE
■Kontaktné údaje.
V prípade otázok týkajúcich sa tohto článku nás kontaktujte tu.