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.

Změřil jsem maximální počet případů, které může webový server (Apache) zpracovávat současně pomocí pronajatého serveru VPS.

Obsah

  1. měření
  2. Podrobnosti o výsledcích měření
  3. shrnutí

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

CPU2core
memory1GB
SSD50GB

■Informace o serveru

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. 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.




■INFORMATION

Kliknutím sem přejdete na horní stránku s informacemi.


■PROFILE

Kliknutím sem získáte profil.


■Kontaktní údaje.

V případě dotazů k článku nás prosím kontaktujte zde.