A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:

A módszerről korábban írtunk első részben cikkünkben, itt pedig az HTTPS tesztelését végezzük valósághűbb forgatókönyvekben. A teszteléshez Let's Encrypt tanúsítványt szereztünk be, a Brotli tömörítést pedig 11-re állítottuk.

Ezúttal megpróbáljuk újraalkotni a VDS-re telepített szerver vagy virtuális gép forgatókönyvét egy tipikus processzorral rendelkező hoston. Ehhez a következő korlátokat állítottuk be:

  • 25% — Ez körülbelül 1350 MHz-re fordítva
  • 35% - 1890 MHz
  • 41% — 2214 MHz
  • 65% — 3510 MHz

A párhuzamos kapcsolatok száma 500-ról 1, 3, 5, 7 és 9-re csökkent.

Results:

Késések:

A TTFB-t kifejezetten külön tesztként emeltük ki, mert az HTTPD Tools minden egyes kéréshez szinte új felhasználót hoz létre. Ez a teszt még mindig elég elszakadt a valóságtól, mivel a felhasználók valószínűleg néhány oldalt kattintanak, és valójában a TTFP játszik itt központi szerepet.

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
Az első, általában legelső kérés a virtuális gép IIS első indítása után átlagosan 120 ms alatt teljesül.

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
Minden további kérés 1,5 ms TTFP-t mutat. Az Apache és Nginx e téren lemarad. Személyesen az író ezt a tesztet tartja a legmegbízhatóbbnak, és csak ennek alapján választana győztest.
Az eredmény nem meglepő, mivel az IIS már tömörített statikus tartalmat gyorsítótáraz, nem újra tömöríti minden alkalommal, amikor hozzáférnek.

Az egy ügyfélre fordított idő

A teljesítmény értékeléséhez elegendő egy 1 párhuzamos kapcsolattal végzett teszt.
Például az IIS a 5000 felhasználóra vonatkozó tesztet 40 másodperc alatt fejezte be, ami 123 kérés másodpercenként.

Az alábbi grafikonok a weboldal teljes tartalomátadási idejét mutatják. Ez az időtartam, amennyi alatt a kérdéseket teljesítették. A mi esetünkben a kérdések 80%-a 8 ms-on belül került feldolgozásra az IIS-en, míg az Apache-on és Nginx-en 4,5 ms alatt, az 8 ms-on belüli időintervallumon belül pedig a kérdések 98%-át teljesítették az Apache-on és Nginx-en.

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
Az az idő, amíg 5000 kérdést feldolgoztak:

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
Az az idő, amíg 5000 kérdést feldolgoztak:

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
Ha van egy virtuális gépe 3,5 GHz-es CPU-val és 8 maggal, válassza azt, amit szeretne. A webkiszolgálók nagyon hasonlóak ebben a tesztelésben. Arról, hogy melyik webkiszolgálót válasszuk minden hosthoz, lentebb beszélünk.

Ha egy kicsit valósabb helyzetről van szó, minden webkiszolgáló fej-fej mellett halad.

Átviteli sebesség:

A késések grafikonja az egyidejű kapcsolatok számától függően. Ha simább és alacsonyabb – az jobb. Az utolsó 2%-ot eltávolítottuk a diagramokból, mert olvashatatlanná tenné őket.

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
Most nézzük meg azt a lehetőséget, ahol a szerver virtuális tárhelyen van elhelyezve. Vegyünk 4 magot 2,2 GHz-el és egy magot 1,8 GHz-el.

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:

Hogyan skálázódnak

Ha valaha is láttad, hogyan néznek ki az elektroncsövek, pentódok és így tovább, ezek a grafikonok ismerősek lesznek számodra. Ezt próbáljuk megragadni – telítettség. Az a határ, amikor bármennyi magot is használunk, a teljesítménynövekedés már nem lesz észrevehető.

Korábban a kihívás abban állt, hogy a lehető legkisebb késleltetéssel kezeljük a kérések 98%-át, és a görbét a lehető legsimábbá tartsuk. Most egy másik görbe segítségével megtaláljuk az optimális munkapontot minden szerver esetében.

Ehhez vegyük figyelembe a másodpercenkénti kérések számát (RPR). A vízszintes tengelyen a frekvencia, a függőleges tengelyen pedig a másodpercenként feldolgozott kérések száma, a vonalak pedig a magok számát jelölik.

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
Itt látható a korreláció, mennyire jól kezeli az Nginx a kéréseket egymás után. 8 mag ebben a tesztelésben jobban teljesít.

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
Ezen a grafikonon jól látszik, mennyivel jobban (nem sokkal) működik az Nginx egy magon. Ha az Nginx-et használod, érdemes elgondolkodnod a magok számának egyre csökkentésén, ha csak statikus tartalmat hosztálsz.

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
Az IIS, bár a Chrome DevTools szerint a legalacsonyabb TTFB-vel rendelkezik, képes elveszíteni az Nginx és az Apache előtt egy komoly stresszteszten az Apache Foundation-től.

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:
A grafikonok görbülete vasban reprodukálható.

Valamilyen következtetés:

Igen, az Apache vasban rosszabbul teljesít 1 és 8 magon, de 4 magon kissé jobban működik.

Igen, az Nginx 8 magon jobban kezeli a kéréseket egymás után, 1 és 4 magon pedig rosszabbul teljesít, amikor sok kapcsolatra van szükség.

Igen, az IIS a 4 magot kedveli a több szálas terhelésnél, és a 8 magot kedveli az egy szálas terhelésnél. Végső soron az IIS kicsit gyorsabb volt mindegyiknél 8 magon magas terhelés alatt, bár minden szerver egyenlő szinten mozgott.

Ez nem mérési hiba, a hibahatár itt nem több, mint ±1 ms a késleltetésekben, és nem több, mint ±2-3 kérés másodpercenként az RPR esetében.

A 8 magos eredmények, amikor rosszabbul teljesítenek, egyáltalán nem meglepőek; sok mag és SMT/Hyperthreading jelentősen rontja a teljesítményt, ha van egy időkeret, amelyen belül a teljes pipelinet be kell fejezni.

A WEB szerverek harca. 2. rész – reális HTTPS forgatókönyv:

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster