
200 millisaniyə: tək HTTP sorğusunun bütün ömrünü izləyən interaktiv səhifə
thenodebook.com-un «200 Milliseconds» səhifəsi tək HTTP sorğusunu 211,4 millisaniyəlik ömrü boyu izləyir — San-Fransiskoda kafedəki klikdən sifariş təsdiqinə qədər.
thenodebook.com-un interaktiv «200 Milliseconds» səhifəsi tək HTTP sorğusunu bütün 211,4 millisaniyəlik ömrü boyu izləyir: çərşənbə axşamı səhər 9:41-də San-Fransiskodakı kafedə kimsə Buy düyməsinə basır və 211,4 ms sonra ekranda «Order confirmed» görünür. Klikləyən şəxs heç bir gecikmə hiss etməyib. Səhifənin yuxarısındakı saat dəqiqdir və t = 0,211400 saniyədə dayanır; hekayə qısa dərs üçün fasilə verdikdə saat donur, sürüşdürməyə davam etdikcə zaman yenidən işləyir.
Yol
Sorğu yeddi mərhələdən keçir: kafenin Wi-Fi şəbəkəsindəki noutbuk, radio siqnalını qəbul edib kabel ilə ötürən giriş nöqtəsi, kafenin internet provayderi, San-Fransisko ilə Virciniyadakı Aşbern arasında təxminən 4,700 km fiber, arxasında dörd Node.js prosesi olan yük balanslaşdırıcı, server prosesinin özü (PID 1447, 23 gün əvvəl işə salınıb) və 0,35 ms məsafədə olan PostgreSQL bazası. Təsdiq göstərilənədək sorğu və cavabları Şimali Amerikanı altı dəfə keçmiş, başqalarının yüz milyon sətir kodunu işlədən qırx qədər maşından keçmiş olacaq.
Saat hara gedir
İlk beş millisaniyə aparat və brauzer uçotudur: toxunma panelindəki tutum dəyişikliyi kəsilmə (interrupt) yaradır, HID sürücüsü, pəncərə serveri və Chrome-un brauzer prosesi hadisəni təcrid olunmuş renderer-ə ötürür, burada hit testing klikin altı qat dərinliyindəki Buy düyməsinə aid olduğunu müəyyən edir. Sonra /api/checkout-a fetch hər üç keşdən keçmir — yaddaş, service worker və disk — çünki POST sorğuları saxlanılmır. Soket hovuzunda api.thenodebook.com ilə bağlantı yoxdur, buna görə sorğu «soyuq başlanğıc» haqqını ödəyir: TCP və TLS əl sıxışmaları hər tur üçün 62 ms-lə 211,4 millisaniyənin 127-sini alır. 203 baytlıq mətn sorğusu 225 baytlıq TLS qeydinə çevrilir və şəbəkədə 300 baytdan bir az az həcmdə gedir; ünvanlar hər mərhələdə oxunaqlı qalır, çünki qırx qədər maşın onu marşrutlaşdırmalıdır.
Soyuq və isti başlanğıc
Yayımlanmış soyuq başlanğıc bölgüsü belədir: hazırlıq 7 ms, əl sıxışmalar 127 ms, uçuş və render 74 ms, server 3 ms. Eyni açıq bağlantı üzərində ikinci sorğu təxminən 95 ms çəkir — brauzer 5, bir keçid 62, server 3, render 25 — çünki saxlanılan soket və sessiya bileti əl sıxışmalarını tamamilə aradan qaldırır. Səhifə pərdələr arasında saatı dayandırıb soketləri, portları, anycast marşrutlaşdırmanı, SYN cookie-ləri və autentifikasiyalı şifrələməni qısaca izah edir.
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.