Změřil jsem maximální počet případů, které může webový server (Apache) zpracovávat současně pomocí pronajatého serveru VPS.
Datum vydání:31. prosince 2020.
INFOMARTION > Změřil jsem maximální počet případů, které může webový server (Apache) zpracovávat současně pomocí pronajatého serveru VPS.
Přehled.
Změřil jsem maximální počet případů, které může webový server (Apache) zpracovat najednou, a rád bych napsal o výsledcích. 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 pouze na serveru WEB (Apache), ale v níže uvedeném článku naleznete měření na serverech WEB/AP (Apache a Tomcat).
Obsah
- měření
- 1-1. Prostředí měření
- 1-2. Metoda měření
- 1-3. výsledek měření
- Podrobnosti o výsledcích měření
- 2-1. Měření WEB serveru (Apache)
- 2-2. zvážení
- 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
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Informace o serveru
OS | CentOS 7.4 64bit |
---|---|
Webový server | Apache HTTP Server 2.4.41 |
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. Tento 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ž 120 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ž 60 požadavků. |
---|---|
CPU:2core memory:1GB SSD:50GB | Současně lze zpracovat až 120 požadavků. |
CPU:3core memory:2GB SSD:100GB | Současně lze zpracovat až 240 požadavků. |
Bylo zjištěno, že i při specifikacích "procesor: 1jádro", "paměť: 512 MB" a "SSD: 25 GB" může systém pro přibližně 60 osob fungovat bez problémů.
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 serveru (Apache)
Opakované požadavky byly házeny proti stránkám vytvořeným v jazyce HTML. Jedná se o jednoduchou stránku bez složitého zpracování v jazyce PHP nebo JavaScriptu.
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ů⇒OK
- Pro 100 současných požadavků⇒OK
- 110 souběžných požadavků⇒OK
- Pro 120 současných požadavků⇒OK
- Pro 130 současných požadavků⇒NG
K chybě došlo u 130. 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%
- míra 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 používá 960 MB paměti (8M x 120 procesů) a hodnota nastavení byla "250", ale zdálo se, že není možné vytvořit více než "120" procesů.
※Paměť serveru je téměř na hranici 1G.
Při skutečném provozu serveru, pokud je zahrnuto i PHP a Java, je limit přibližně 100 případů, a pokud je místo, lze paralelně zpracovávat 80 případů.
Pokud je nainstalován a spuštěn pouze Apache se specifikacemi "CPU: 2core, memory: 1GB, SSD: 50GB", bylo zjištěno, že počet současných přístupů je "120".
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:120 případů
- Spotřeba paměti na vlákno v systému Apache.:8MB
- Spotřeba paměti Apache:960MB(120 případů×8MB)
【po změně(memory2GB)】
- memory:2GB
- Počet vláken Apache:240 případů.
- Spotřeba paměti na vlákno v systému Apache.:8MB
- Spotřeba paměti Apache:1920MB(240 případů.×8MB)
Pokud se paměť zvýší na 2 GB, bude možné zdvojnásobit počet případů na přibližně 240 současně. Pokud se paměť zvýší na 3 GB, zdá se, že bude možné provádět více souběžných 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. 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:60 případů.
- Spotřeba paměti na vlákno v systému Apache.:8MB
- Spotřeba paměti Apache:480MB(60 případů.×8MB)
3. shrnutí
Změřili jsme maximální počet případů, které může webový server (Apache) zpracovat najednou. Bylo zjištěno, že systém pro přibližně 60 lidí může 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čuje se zvolit specifikaci s určitou volností, protože se jedná o okrajovou hodnotu.
Děkujeme, že jste se dívali až do konce.