WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:

Metodika haqqında məlumat verdik birinci hissədə maddədə, bu dəfə HTTPS-in daha realistik ssenarilərdə testini edirik. Test üçün Let’s Encrypt sertifikatı alındı, Brotli sıxılması 11-də aktiv edildi.

Bu dəfə standart prosessorlu hostda VDS üzərində serverin yerləşdirmə ssenarisini təkrar etməyə çalışacağıq. Bunun üçün limit qoyuldu:

  • 25% — Təxminən 1350MHz frekansında
  • 35% - 1890MHz
  • 41% — 2214MHz
  • 65% — 3510MHz

Eyni anda olan bağlantılar sayı 500-dən 1, 3, 5, 7 və 9-a enib

birləşdirərək yaradılacaq.

Gecikmələr:

TTFB ayrıca test kimi verilib, çünki HTTPD Tools hər ayrı istehsal üçün yeni istifadəçi yaradır. Bu test hələ də reallıqdan xeyli uzaqdadır, çünki istifadəçi bir neçə səhifəyə klikləyəcək, reallıqda TTFP əsas rol oynayacaq.

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
İlk başlanan IIS virtual maşından sonra ilk tələb ortalama 120 ms-də işləyir.

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
Sonrakı bütün tələbələr 1.5 ms TTFP göstərir. Apache və Nginx bu barədə geri qalır. Şəxsi olaraq, müəllif bu testi ən göstərici hesab edir və yalnız buna görə qalib seçərdi.
Nəticə gözlənilməz deyil, çünki IIS artıq sıxılmış statik məzmunu öncə saxlayır və ona müraciət edildikdə hər dəfə yenidən sıxmır.

Bir müştəri üçün sərf olunan vaxt

Performansı qiymətləndirmək üçün tək bir eyni anda bağlantı ilə test kifayətdir.
Məsələn, IIS 5000 istifadəçidən ibarət testi 40 saniyədə tamamladı, bu da 123 tələb saniyədədir.

Aşağıdakı qrafiklər saytın tam məzmununun ötürülməsinə qədər vaxtı göstərir. Bu, müəyyən bir zamanda yerinə yetirilən tələblərin hissəsidir. Bu halda IIS-də bütün tələblərin 80%-i 8 ms-də, Apache və Nginx-də isə 4.5 ms-də işlənmişdir, 8 millisekund müddətində isə Apache və Nginx-in 98%-i bütün tələbləri yerinə yetirmişdir.

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
5000 tələbin işlənmə müddəti:

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
5000 tələbin işlənmə müddəti:

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
Əgər sizin 3.5GHz CPU və 8 nüvəli virtual maşınınız varsa, istədiyinizi seçin. Bu testdə bütün veb serverlər çox oxşardır. Hər host üçün hansı veb serveri seçmək haqqında aşağıda danışacağıq.

Biraz daha real vəziyyətlərdə bütün veb serverlər bir-birinə yaxındır.

Keçiricilik:

Eyni anda olan bağlantılar sayından gecikmə qrafiki. Daha düz və aşağı – daha yaxşıdır. Son 2% qrafikdən çıxarıldı, çünki onları oxunmaz edəcəkdi.

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
İndi virtual hostinqdə yerləşən server variantını nəzərdən keçirək. 4 ədəd 2.2GHz və bir ədəd 1.8GHz nüvəni götürək.

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:

Necə şaxələnir

Əgər siz elektrik vakuum triodların, pentodların və s.-nin VAX-larını gördünüzsə, bu qrafiklər sizə tanış olacaq. Biz məhz bunu tutmağa çalışırıq – doymuşluğu. Nüvələrin sayı nə qədər olsa da, performansın artmasında fərq görünməyəcək nöqtə.

Əvvəllər bütün çağırış, mümkün qədər düz bir xətt saxlayaraq 98% sorğuları ən aşağı gecikmə ilə emal etmək idi. İndi isə digər bir xəttin qurulması ilə hər bir server üçün optimal iş nöqtəsini tapacağıq.

Bunun üçün Requests per second (RPR) göstəricisini götürək. Üfiqi oxda tezlik, şaquli oxda – bir saniyədə emal edilən sorğuların sayı, xətlər – nüvələrin sayı.

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
Nginx-in bir-birinə ardıcıl olaraq sorğuları necə emal etdiyinin korrelyasiyası göstərilir. Belə testlərdə 8 nüvə daha yaxşı nəticələr göstərir.

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
Bu qrafikdə görünür ki, Nginx bir nüvədə (çox da deyil) daha yaxşı işləyir. Əgər sizdə Nginx varsa, yalnız statik resursları yerləşdirirsinizsə, nüvələrin sayını birə endirmək haqqında düşünmək yaxşıdır.

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
IIS, Chrome-da DevTools-a görə ən aşağı TTFB-yə malik olsa da, Apache Foundation tərəfindən keçirilən ciddi stress testlərində Nginx və Apache-yə qalib gələ bilmir.

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:
Qrafiklərin hər birinin xarakterik əyriliyi dəqiq təqdim olunub.

Bir növ nəticə:

Bəli, Apache 1 və 8 nüvədə aydın şəkildə daha pis işləyir, 4-də isə bir az yaxşıdır.

Bəli, Nginx 8 nüvədə bir-bir ardıcıllıqla daha yaxşı sorğuları emal edir, 1 və 4 nüvədə isə çoxluğu olan bağlantılarda daha pis işləyir.

Bəli, IIS çoxtəsirli yük üçün 4 nüvəni, tək təsirli yük üçün isə 8 nüvəni üstün tutur. Nəticədə, IIS yüksək yük altında 8 nüvədə bütün serverlərdən bir az daha sürətli çıxdı, amma bütün serverlər bərabər yarışdı.

Bu ölçmə səhvi deyil, burada gecikmələrdə səhv ±1ms-dən, RPR üçün isə ±2-3 sorğuya qədərdir.

8 nüvənin daha pis olduğu nəticələri heç də gözlənilməz deyil; bir çox nüvə və SMT/Hyperthreading, bütün pipeline-i tamamlamağa çalışdığımız zaman performansı ciddi şəkildə azaldır.

WEB serverlərin döyüşü. Hissə 2 – realistik HTTPS ssenarisi:

Mənbə: habr.com

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster