Izmeril sem največje število primerov, ki jih lahko spletni strežnik (Apache) obdeluje hkrati z uporabo strežnika za najem VPS.
Datum objave:31. december 2020.
INFOMARTION > Izmeril sem največje število primerov, ki jih lahko spletni strežnik (Apache) obdeluje hkrati z uporabo strežnika za najem VPS.
Pregled.
Izmeril sem največje število primerov, ki jih lahko spletni strežnik (Apache) obdela hkrati, in rad bi napisal o rezultatih. Zanimalo nas je, kakšno je največje število zahtevkov, ki jih lahko postrežemo, zato smo izvedli raziskavo. To uporabite kot referenco za izbiro specifikacij strežnika VPS.
Tokrat so bile meritve opravljene samo na strežniku WEB (Apache), za meritve na strežnikih WEB/AP (Apache in Tomcat) pa glejte spodnji članek.
Kazalo vsebine
1. merjenje
1-1. Merilno okolje
Okolje, v katerem se bodo izvajale meritve, je prikazano v nadaljevanju.
■Informacije o strežniku za najem
CPU | 2core |
---|---|
memory | 1GB |
SSD | 50GB |
■Informacije o strežniku
OS | CentOS 7.4 64bit |
---|---|
Spletni strežnik | Apache HTTP Server 2.4.41 |
1-2. Metoda merjenja
To bi rad izmeril s programom JMeter. JMeter je orodje za merjenje obremenitve, ki deluje v Javi. Orodje omogoča hkratno oddajo velikega števila zahtevkov. S programom JMeter želimo postopoma povečevati število hkratnih zahtevkov in povečevati obremenitev, dokler obdelave ne bo več mogoče opraviti.
Posebni pogoji vključujejo.
- interval zahtevka・・・5 sek.
- Število hkratnih zahtevkov・・・10 primerov.(Meritve so se postopoma povečevale po 10 primerov.)
- Merjenje časa・・・60 sekund.
Čas merjenja je "60 sekund", interval zahteve pa "5 sekund", zato želite do sistema dostopati 12-krat (60÷5).
1-3. rezultat meritev
Na koncu veliko ljudi zanima zaključek o tem, katere specifikacije lahko strežnik prenese in koliko lahko prenese, zato bi rad najprej navedel zaključek.
CPU:2core memory:1GB SSD:50GB | Hkrati je mogoče obdelati do 120 zahtevkov. |
---|
Rezultati te meritve so pokazali zgoraj navedeno. Na podlagi zgornjih rezultatov je mogoče sklepati naslednje. Poskusite to uporabiti kot merilo pri izbiri specifikacij strežnika.
CPU:1core memory:512MB SSD:25GB | Hkrati je mogoče obdelati do 60 zahtevkov. |
---|---|
CPU:2core memory:1GB SSD:50GB | Hkrati je mogoče obdelati do 120 zahtevkov. |
CPU:3core memory:2GB SSD:100GB | Hkrati je mogoče obdelati do 240 zahtevkov. |
Ugotovljeno je bilo, da lahko sistem s približno 60 ljudmi brez težav deluje tudi s specifikacijami "procesor: 1 jedro", "pomnilnik: 512 MB" in "SSD: 25 GB".
2. Podrobnosti o rezultatih meritev
Rezultate meritev smo opisali že prej, če pa vas zanima, kakšne rezultate smo opisali, preverite tudi podrobnosti o rezultatih meritev, ki bodo opisane v prihodnosti.
2-1. Meritve spletnega strežnika (Apache)
Za strani, ustvarjene v jeziku HTML, so bile oddane ponavljajoče se zahteve. To je preprosta stran brez zahtevne obdelave PHP ali JavaScripta.
Meritve so pokazale naslednje rezultate.
- Za 10 hkratnih zahtevkov⇒OK
- Za 20 hkratnih zahtevkov⇒OK
- Za 30 hkratnih zahtevkov⇒OK
- Za 40 hkratnih zahtevkov⇒OK
- Za 50 hkratnih zahtevkov⇒OK
- Za 60 hkratnih zahtevkov⇒OK
- Za 70 hkratnih zahtevkov⇒OK
- Za 80 hkratnih zahtevkov⇒OK
- Za 90 hkratnih zahtevkov⇒OK
- Za 100 hkratnih zahtevkov⇒OK
- 110 hkratnih zahtevkov⇒OK
- Za 120 hkratnih zahtevkov⇒OK
- Za 130 hkratnih zahtevkov⇒NG
Napaka se je pojavila pri 130. primeru. Vzrok je bila napaka povezave z Apachejem. Stanje strežnika v tem času je bilo naslednje.
- Izkoriščenost procesorja・・・26%
- stopnja uporabe pomnilnika・・・100%
Ozko grlo je bilo popolno pomanjkanje pomnilnika.
Za nekoliko bolj zahtevne uporabnike je konfiguracija večprocesorskega modula Apache (MPM) naslednja. MPM je preprosto razložen kot nastavitev, koliko lahko Apache obdeluje vzporedno.
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Zanimiva je nastavitev "250" za "MaxRequestWorkers". To je nastavitev za največje število primerov, ki jih lahko Apache obdela hkrati. '250', tako da je bilo mogoče vzporedno obdelati največ 250 primerov, pri čemer je bilo za vsak primer uporabljenih približno 8 MB pomnilnika.
Zdi se, da uporablja 960 MB pomnilnika (8M x 120 procesov), vrednost nastavitve pa je bila "250", vendar se je zdelo, da ni mogoče ustvariti več kot "120" procesov.
※Pomnilnik strežnika je skoraj do zgornje meje 1G.
Pri dejanskem delovanju strežnika, če sta vključena tudi PHP in Java, je omejitev približno 100 primerov, če je dovolj prostora, pa se lahko vzporedno obdeluje 80 primerov.
Če je nameščen in deluje samo Apache s specifikacijami "CPU: 2core, memory: 1GB, SSD: 50GB", je bila ugotovljena omejitev števila hkratnih dostopov "120".
2-2. upoštevanje
Od tu naprej je treba upoštevati, da je pomnilnik ozko grlo, zato se bo ob spremembi pomnilnika povečalo število procesov, ki jih je mogoče sočasno obdelovati.
【Prisotni.(memory1GB)】
- memory:1GB
- Število niti Apache:120 primerov
- Poraba pomnilnika na nit v programu Apache.:8MB
- Poraba pomnilnika Apache:960MB(120 primerov×8MB)
【po spremembi(memory2GB)】
- memory:2GB
- Število niti Apache:240 primerov.
- Poraba pomnilnika na nit v programu Apache.:8MB
- Poraba pomnilnika Apache:1920MB(240 primerov.×8MB)
Če se pomnilnik poveča na 2 GB, je mogoče podvojiti število primerov na približno 240 hkrati. Če se pomnilnik poveča na 3 GB, se zdi, da je mogoče opraviti več hkratne obdelave, vendar je vrednost "MaxRequestWorkers (največje število primerov za hkratno obdelavo)" v Apachejevem MPM "250", zato bo tudi tu potrebna prilagoditev, če se pomnilnik še poveča. Če pa se pomnilnik prepolovi, je stanje naslednje.
【po spremembi(memory512GB)】
- memory:512GB
- Število niti Apache:60 primerov.
- Poraba pomnilnika na nit v programu Apache.:8MB
- Poraba pomnilnika Apache:480MB(60 primerov.×8MB)
3. povzetek
Izmerili smo največje število primerov, ki jih lahko spletni strežnik (Apache) obdela hkrati. Ugotovljeno je bilo, da lahko sistem s približno 60 ljudmi brez težav deluje s "CPU: 1 jedro", "pomnilnik: 512 MB" in "SSD: 25 GB".
Raziskava temelji na predpostavki, da nobena druga programska oprema ne deluje z mejno zmogljivostjo. Priporočljivo je izbrati specifikacijo z nekaj manevrskega prostora, saj gre za mejno vrednost.
Hvala, ker ste gledali do konca.