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


Datum objave:1. januar 2021.



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

Pregled.

Izmeril sem največje število primerov, ki jih lahko strežnika WEB/AP (Apache in Tomcat) obdelata hkrati, in o rezultatih želim pisati. 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 na strežnikih WEB/AP (Apache in Tomcat), za meritve samo na strežniku WEB (Apache) pa glejte spodnji članek.

Izmeril sem največje število primerov, ki jih lahko spletni strežnik (Apache) obdeluje hkrati z uporabo strežnika za najem 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
Strežnik APApache Tomcat 9.0.27
Strežnik DBPostgreSQL 10.2
JavaOpenJDK 11

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
Obdelati je mogoče do 80 hkratnih 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 20 zahtevkov.
CPU:2core
memory:1GB
SSD:50GB
Obdelati je mogoče do 80 hkratnih zahtevkov.
CPU:3core
memory:2GB
SSD:100GB
Hkrati je mogoče obdelati do 200 zahtevkov.

Ugotovljeno je bilo, da bi sistem z velikostjo približno 20 uporabnikov brez težav deloval s "CPU: 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 strežnika WEB/AP (Apache, Tomcat)

Zahteva je bila oddana v scenariju, v katerem se uporabnik prijavi s prijavnega zaslona, po prijavi pa se prikaže zaslon s seznamom. Mimogrede, zaslon je zgrajen z ogrodjem Spring, vključno s funkcijo avtentikacije.

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⇒NG

Napaka se je pojavila pri 90. primeru. Vzrok je bila napaka povezave z Apachejem. Stanje strežnika v tem času je bilo naslednje.

  • Izkoriščenost procesorja・・・26%
  • izkoriščenost 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, vendar je bilo za vsak primer uporabljenih približno 8 MB pomnilnika.

Zdi se, da Java uporablja 320 MB pomnilnika (248 MB za kup in 72 MB za metaprostor), Apache pa 640 MB pomnilnika (8 MB x 80 procesov), in čeprav je Apachejeva vrednost nastavitve MPM '250', se je zdelo, da ne more ustvariti več kot '80' procesov.
※Strežnik ima 1 G pomnilnika, zato je skupni pomnilnik za Apache in Javo 960 MB, kar je skoraj na zgornji meji.

Strežnik AP (na strani Java) je deloval v redu, zato je bil ozko grlo strežnik WEB (Apache).

Ko sta Apache in Tomcat nameščena in zagnana, smo ugotovili, da je pri specifikacijah "CPU: 2core, memory: 1GB, SSD: 50GB" število hkratnih dostopov "80" omejitev.(Predpostavlja se, da so nastavitve pomnilnika za Javo 248M za kup in 72M za metaprostor.)

2-2. obravnava

Od tu naprej je treba upoštevati, da je pomnilnik ozko grlo, zato se ob spremembi pomnilnika poveča tudi število procesov, ki jih je mogoče sočasno obdelovati.

【Prisotni.(memory1GB)】

  • memory:1GB
  • Število niti Apache:80 primerov.
  • Poraba pomnilnika na nit v programu Apache.:8MB
  • Poraba pomnilnika Apache:640MB(80 primerov.×8MB)
  • Poraba pomnilnika Tomcat:320MB(248 milijonov za HEAP.、72 m za metaprostor.)
  • Poraba pomnilnika Apache+Tomcat:960MB

【po spremembi(memory2GB)】

  • memory:2GB
  • Število niti Apache:200 primerov
  • Poraba pomnilnika na nit v programu Apache.:8MB
  • Poraba pomnilnika Apache:1600MB(200 primerov×8MB)
  • Poraba pomnilnika Tomcat:320MB(248 milijonov za HEAP.、72 m za metaprostor.)
  • Poraba pomnilnika Apache+Tomcat:1920MB

Z 2 GB pomnilnika je mogoče hkrati obdelati 200 primerov. Č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)" Apachejevega MPM "250", zato bo tudi tu potrebna prilagoditev, če se pomnilnik še poveča. Morda bo potrebna tudi nastavitev pomnilnika Java. Če pa se pomnilnik prepolovi, je stanje naslednje.

【po spremembi(memory512GB)】

  • memory:512GB
  • Število niti Apache:20 primerov
  • Poraba pomnilnika na nit v programu Apache.:8MB
  • Poraba pomnilnika Apache:160MB(20 primerov×8MB)
  • Poraba pomnilnika Tomcat:320MB(248 milijonov za HEAP.、72 m za metaprostor.)
  • Poraba pomnilnika Apache+Tomcat:480MB

3. povzetek

Opisani so rezultati merjenja največjega števila primerov, ki jih lahko strežnika WEB/AP (Apache in Tomcat) obdelata hkrati. Ugotovljeno je bilo, da bi sistem z velikostjo približno 20 uporabnikov brez težav deloval 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.