2010 में, Google के जेफ डीन ने स्टैनफोर्ड में एक अद्भुत बातचीत दी जिसने उन्हें काफी प्रसिद्ध बना दिया। इसमें, उन्होंने कुछ संख्याओं पर चर्चा की जो कंप्यूटिंग सिस्टम के लिए प्रासंगिक हैं। फिर पीटर नॉरविग ने उन संख्याओं को पहली बार इंटरनेट पर प्रकाशित किया।
समय बीता, और संख्याएं बदल गईं। यहाँ उन संख्याओं का एक बहुत अच्छा इंटरैक्टिव वेब UI है जो मोटे तौर पर बताता है कि वे वर्षों में समय के एक फंक्शन के रूप में कितना बदल गए हैं।
यह लेख न केवल जेफ डीन के अनुमानित डेटा का संकलन है, बल्कि यह विभिन्न स्रोतों से ऐसी सभी संख्याओं को एक साथ लाता है। यह आपको एक सिस्टम डिजाइनर और आर्किटेक्ट के रूप में मदद करना चाहिए। डिजाइन करते समय, आप अपने सिस्टम को आवश्यक संसाधनों की मात्रा का अनुमान लगाने के लिए इन संख्याओं का उपयोग कर सकते हैं।
2019 के लिए विलंबता डेटा का मोटा अनुमान:
- L1 कैश रेफरेंस: 1 नैनोसेकंड।
- L2 कैश रेफरेंस: 4 नैनोसेकंड।
- म्यूटेक्स लॉक / अनलॉक: 17 नैनोसेकंड।
- मेन मेमोरी / RAM रेफरेंस: 100 नैनोसेकंड।
- Zippy (वर्तमान में स्नैपी कहा जाता है) के साथ 1 KB संपीड़ित करें: 2000 नैनोसेकंड या 2 माइक्रोसेकंड।
- CPU ब्रांच मिसप्रेडिक्ट: 3 नैनोसेकंड।
- सॉलिड स्टेट ड्राइव (SSD) रैंडम रीड: 16 माइक्रोसेकंड।
- डिस्क (हार्ड ड्राइव / मैग्नेटिक ड्राइव) सीक: 3 मिलीसेकंड।
- मेन मेमोरी से क्रमिक रूप से 1,000,000 बाइट्स पढ़ें: 4 माइक्रोसेकंड।
- SSD से क्रमिक रूप से 1,000,000 बाइट्स पढ़ें: 62 माइक्रोसेकंड।
- डिस्क से क्रमिक रूप से 1,000,000 बाइट्स पढ़ें: 947 माइक्रोसेकंड।
- एक ही डेटा सेंटर में राउंड ट्रिप नेटवर्क अनुरोध: 500 माइक्रोसेकंड।
- कमोडिटी नेटवर्क पर 2000 बाइट्स भेजें: 62 नैनोसेकंड।
TCP पर पेलोड यात्रा के लिए लिया गया समय:
यहाँ दुनिया भर के सामान्य सेल नेटवर्क पर विभिन्न डेटा पेलोड को ट्रांसमिट करने के लिए आवश्यक समय की मात्रा है, यह मानते हुए कोई डेटा हानि नहीं है।
RTT — राउंड ट्रिप टाइम — एक डेटा पैकेट (डेटा बाइट्स का गुच्छा) को प्रेषक से रिसीवर और रिसीवर से प्रेषक तक नेटवर्क पर यात्रा करने में लगा कुल समय। संक्षेप में, इसे पिंग समय कहा जाता है।
- 1 बाइट से 13,000 बाइट्स (लगभग 13 KB) डेटा का ट्रांसफर 1 राउंड ट्रिप या 1 RTT लेता है। अनुमानित समय - USA: 150 मिलीसेकंड, भारत: 1200 मिलीसेकंड, ब्राजील: 600 मिलीसेकंड।
- 13,001 बाइट्स — 39,000 बाइट्स (13 KB से 39 KB) 2 RTT लेता है। अनुमानित समय - USA: 300 मिलीसेकंड, भारत: 2400 मिलीसेकंड, ब्राजील: 1200 मिलीसेकंड।
- 39,001 बाइट्स — 91,000 बाइट्स (39 KB से 91KB) 3 RTT लेता है। अनुमानित समय-USA: 450 मिलीसेकंड, भारत: 3600 मिलीसेकंड, ब्राजील: 1800 मिलीसेकंड।
- 91,001 बाइट्स — 195,000 बाइट्स (91 KB से 195 KB) 4 RTT लेता है। अनुमानित समय - USA: 600 मिलीसेकंड, भारत: 4800 मिलीसेकंड, ब्राजील: 2400 मिलीसेकंड।
तो प्रतिक्रिया आकार जितना बड़ा होगा, उतने अधिक बाइट्स, लंबा राउंड ट्रिप, अधिक API विलंबता, और अंततः कम उपयोगकर्ता अनुकूल ऐप।
जब नई या अद्यतन संख्याएं मिलेंगी तो इस पोस्ट को अपडेट किया जाएगा। कृपया मुझे बताएं यदि आप नई संख्याओं से अवगत हैं।
यह लेख मूल रूप से लेखक की मीडियम वॉल पर प्रकाशित हुआ है। यदि आपको यह पसंद है, तो कृपया क्लैप दें।
संदर्भ:
- https://colin-scott.github.io/blog/2012/12/24/latency-trends/
- https://blog.std.in/2015/05/23/http-response-sizes-and-tcp/
- https://medium.com/@kousiknath/must-know-numbers-for-every-computer-engineer-6338a12c292c