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.

Izmeril sem največje število strežnikov WEB/AP (Apache in Tomcat), ki jih lahko hkrati upravljate z najemom strežnika VPS.

Kazalo vsebine

  1. merjenje
  2. Podrobnosti o rezultatih meritev
  3. povzetek

1. merjenje

1-1. Merilno okolje

Okolje, v katerem se bodo izvajale meritve, je prikazano v nadaljevanju.

■Informacije o strežniku za najem

CPU2core
memory1GB
SSD50GB

■Informacije o strežniku

OSCentOS 7.4 64bit
Spletni strežnikApache 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.




■INFORMATION

Kliknite tukaj za prehod na zgornjo stran INFORMACIJE.


■PROFILE

Kliknite tukaj za profil.


■Kontaktni podatki.

Za poizvedbe o članku nam pišite tukaj.