חזרה
‏200 אלפיות שנייה: עמוד אינטראקטיבי עוקב אחרי בקשת HTTP אחת מתחילתה
SiTech Team2 წთ. საკითხავი

‏200 אלפיות שנייה: עמוד אינטראקטיבי עוקב אחרי בקשת HTTP אחת מתחילתה

העמוד ‏«200 Milliseconds» מ-thenodebook.com מלווה בקשת HTTP אחת לאורך 211.4 אלפיות שנייה — מהקלקה בבית קפה בסן פרנסיסקו ועד הודעת אישור ההזמנה.

העמוד האינטראקטיבי «200 Milliseconds» מ-thenodebook.com מלווה בקשת HTTP אחת לכל אורך חייה — 211.4 אלפיות שנייה: ביום שלישי ב-9:41 מישהו בבית קפה בסן פרנסיסקו לוחץ ‏Buy, וכעבור 211.4 אלפיות שנייה המסך מציג «Order confirmed». מי שלחץ לא הבחין בעיכוב. השעון בראש העמוד מדויק ונעצר על t = 0.211400 שניות; כשהסיפור עוצר לשיעור קצר השעון קופא, והזמן ממשיך כשמגללים הלאה.

המסלול

הבקשה עוברת שבע תחנות: המחשב הנייד ברשת ה-Wi-Fi של בית הקפה, נקודת הגישה שקולטת את האות ברדיו ומעבירה אותו הלאה בכבל, ספק האינטרנט של בית הקפה, כ-4,700 ק"מ של סיב אופטי בין סן פרנסיסקו לאשברן שבווירג'יניה, מאזן עומסים עם ארבעה תהליכי Node.js מאחוריו, תהליך השרת עצמו (PID 1447, הופעל לפני 23 ימים) ומסד נתונים PostgreSQL במרחק 0.35 אלפיות שנייה. עד שהאישור מוצג, הבקשה והתשובות שלה חצו את אמריקה הצפונית שש פעמים ועברו דרך כארבעים מכונות שמריצות מאה מיליון שורות של קוד של אנשים אחרים.

לאן הולך הזמן

בחמש אלפיות השנייה הראשונות מדובר בחומרה וברישום של הדפדפן: שינוי בקיבול במשטח המגע יוצר פסיקה (interrupt), דרייבר ה-HID, שרת החלונות ותהליך הדפדפן של Chrome מעבירים את האירוע לרנדרר מבודד, שבו בדיקת הפגיעה מאתרת כפתור Buy שש קומות פנימה. משם בקשת ה-fetch אל ‎/api/checkout מפספסת את שלושת המטמונים — הזיכרון, ה-service worker והדיסק — כי בקשות POST אינן נשמרות. במאגר הסוקטים אין חיבור ל-api.thenodebook.com, ולכן הבקשה משלמת על הפעלה קרה: לחיצות הידיים של TCP ושל TLS, 62 אלפיות שנייה לכל סיבוב, מסתכמות ב-127 מתוך 211.4. הבקשה, 203 בייטים בטקסט פשוט, הופכת לרשומת TLS של 225 בייטים ונעה ברשת בפחות מ-300 בייטים; הכתובות נשארות קריאות בכל תחנה, כי כארבעים מכונות צריכות לנתב אותה.

הפעלה קרה מול חמה

הפילוח המפורסם להפעלה הקרה: הכנה 7, לחיצות ידיים 127, מעוף וציור 74, שרת 3 אלפיות שנייה. בקשה שנייה על אותו חיבור חם אורכת כ-95 אלפיות שנייה — דפדפן 5, חציה אחת 62, שרת 3, ציור 25 — כי סוקט חם וכרטיס סשן מבטלים את לחיצות הידיים לחלוטין. בין המערכות עוצר העמוד את השעון ומסביר בקצרה סוקטים, פורטים, ניתוב anycast, קוקיות SYN והצפנה מאומתת.

SSiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.