Změřil jsem maximální počet WEB/AP serverů (Apache a Tomcat), které mohou pracovat najednou, pomocí pronajatého VPS serveru.
Datum vydání:1. ledna 2021.
INFOMARTION > Změřil jsem maximální počet WEB/AP serverů (Apache a Tomcat), které mohou pracovat najednou, pomocí pronajatého VPS serveru.
Přehled.
Změřil jsem maximální počet případů, které mohou servery WEB/AP (Apache a Tomcat) zpracovávat současně, a rád bych o výsledcích napsal. Zajímalo nás, jaký je maximální počet požadavků, které lze obsloužit, a proto jsme provedli průzkum. Slouží jako reference pro výběr specifikací serveru VPS.
Tentokrát byla měření provedena na serverech WEB/AP (Apache a Tomcat), ale měření pouze na serveru WEB (Apache) naleznete v článku níže.
Obsah
1. měření
1-1. Prostředí měření
Následuje prostředí, ve kterém budou měření prováděna.
■Informace o serveru pronájmu
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Informace o serveru
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. Metoda měření
Chtěl bych to změřit pomocí nástroje JMeter. JMeter je nástroj pro měření zátěže spuštěný v jazyce Java. Nástroj umožňuje zadávat velké množství požadavků najednou. Rádi bychom postupně zvyšovali počet souběžných požadavků pomocí nástroje JMeter a zvyšovali zátěž, dokud nebude možné zpracování dále zvládat.
Specifické podmínky zahrnují.
- interval požadavku・・・5 s.
- Počet souběžných požadavků・・・10 případů.(Měření se postupně zvyšovala vždy o 10 případů.)
- Měření času・・・60 sekund.
Doba měření je "60 sekund" a interval požadavku "5 sekund", takže chcete do systému přistupovat 12krát (60÷5) opakovaně.
1-3. výsledek měření
Nakonec mnoho lidí zajímá závěr, jaké specifikace server zvládne a kolik toho zvládne, takže bych rád nejprve uvedl závěr.
CPU:2core memory:1GB SSD:50GB | Současně lze zpracovat až 80 požadavků |
---|
Výsledky tohoto měření ukázaly výše uvedené skutečnosti. Z výše uvedených výsledků lze vyvodit následující závěry. Zkuste to použít jako kritérium při výběru specifikací serveru.
CPU:1core memory:512MB SSD:25GB | Současně lze zpracovat až 20 požadavků. |
---|---|
CPU:2core memory:1GB SSD:50GB | Současně lze zpracovat až 80 požadavků |
CPU:3core memory:2GB SSD:100GB | Současně lze zpracovat až 200 požadavků. |
Bylo zjištěno, že systém o velikosti přibližně 20 uživatelů bude bez problémů fungovat s "CPU: 1core", "memory: 512MB" a "SSD: 25GB".
2. Podrobnosti o výsledcích měření
Výsledky měření jsme popsali dříve, ale pokud vás zajímá, jaké výsledky jsme popsali, podívejte se také na podrobnosti o výsledcích měření, které budou popsány v budoucnu.
2-1. Měření WEB/AP serveru (Apache, Tomcat)
Požadavek byl zadán ve scénáři, kdy se uživatel přihlásí z přihlašovací obrazovky a po přihlášení se zobrazí obrazovka seznamu. Mimochodem, obrazovka je vytvořena pomocí frameworku Spring, včetně funkce ověřování.
Měření ukázala následující výsledky.
- Pro 10 současných požadavků⇒OK
- Pro 20 současných požadavků⇒OK
- Pro 30 současných požadavků⇒OK
- Pro 40 současných požadavků⇒OK
- Pro 50 současných požadavků⇒OK
- Pro 60 současných požadavků⇒OK
- Pro 70 současných požadavků⇒OK
- Pro 80 současných požadavků⇒OK
- Pro 90 současných požadavků⇒NG
K chybě došlo u 90. případu. Příčinou byla chyba připojení ke službě Apache. Stav serveru byl v té době následující.
- Vytížení procesoru・・・26%
- využití paměti・・・100%
Úzkým místem byl naprostý nedostatek paměti.
Pro trochu náročnější uživatele je konfigurace víceprocesorového modulu Apache (MPM) následující. MPM se jednoduše vysvětluje jako nastavení, kolik dat může Apache zpracovávat paralelně.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Zajímavé je nastavení "250" pro "MaxRequestWorkers". Jedná se o nastavení maximálního počtu případů, které může Apache zpracovávat současně. '250', takže bylo možné paralelně zpracovat maximálně 250 případů, ale při pohledu na využití paměti bylo na jeden případ využito přibližně 8 MB paměti.
Zdálo se, že Java využívá 320 MB paměti (248 MB pro haldu a 72 MB pro metaprostor) a Apache 640 MB paměti (8 MB x 80 procesů), a přestože hodnota nastavení MPM Apache je '250', zdálo se, že nemůže vytvořit více než '80' procesů.
※Server má 1G paměti, takže celková paměť pro Apache a Javu je 960 MB, což je téměř na horní hranici.
Server AP (na straně Javy) fungoval dobře, takže úzkým místem byl WEB server (Apache).
Když jsou nainstalovány a spuštěny Apache a Tomcat, zjistili jsme, že při specifikacích "CPU: 2core, memory: 1GB, SSD: 50GB" je limitem počet současných přístupů "80".(Předpokládáme, že nastavení paměti pro Javu je 248M pro haldu a 72M pro metaprostor.)
2-2. zvážení
Odtud to začíná být na zvážení, ale protože paměť je úzkým hrdlem, pokud se paměť změní, zvýší se i počet procesů, které lze souběžně zpracovávat.
【Přítomni.(memory1GB)】
- memory:1GB
- Počet vláken Apache:80 případů.
- Spotřeba paměti na vlákno v Apache.:8MB
- Spotřeba paměti Apache:640MB(80 případů.×8MB)
- Spotřeba paměti Tomcat:320MB(248 milionů pro HEAP.、72 m pro metaprostor.)
- Spotřeba paměti Apache+Tomcat:960MB
【po změně(memory2GB)】
- memory:2GB
- Počet vláken Apache:200 případů
- Spotřeba paměti na vlákno v Apache.:8MB
- Spotřeba paměti Apache:1600MB(200 případů×8MB)
- Spotřeba paměti Tomcat:320MB(248 milionů pro HEAP.、72 m pro metaprostor.)
- Spotřeba paměti Apache+Tomcat:1920MB
S 2 GB paměti může být možné zpracovávat 200 případů současně. Pokud se paměť zvýší na 3 GB, zdá se, že bude možné provádět více souběžného zpracování, ale hodnota "MaxRequestWorkers (maximální počet souběžně zpracovávaných případů)" v MPM Apache je "250", takže při dalším zvýšení paměti bude nutné vyladit i tuto hodnotu. Může být také nutné vyladit paměť Javy. Pokud by se naopak paměť zmenšila na polovinu, vypadalo by to následovně.
【po změně(memory512GB)】
- memory:512GB
- Počet vláken Apache:20 případů
- Spotřeba paměti na vlákno v Apache.:8MB
- Spotřeba paměti Apache:160MB(20 případů×8MB)
- Spotřeba paměti Tomcat:320MB(248 milionů pro HEAP.、72 m pro metaprostor.)
- Spotřeba paměti Apache+Tomcat:480MB
3. shrnutí
Jsou popsány výsledky měření maximálního počtu případů, které mohou servery WEB/AP (Apache a Tomcat) zpracovávat současně. Bylo zjištěno, že systém o velikosti přibližně 20 uživatelů bude bez problémů fungovat s "CPU: 1core", "memory: 512MB" a "SSD: 25GB".
Průzkum vychází z předpokladu, že žádný jiný software nepracuje s mezním výkonem. Doporučujeme zvolit specifikaci s určitou volností, protože se jedná o okrajovou hodnotu.
Děkujeme, že jste se dívali až do konce.