2010 Jeff Dean จาก Google ให้การบรรยายยอดเยี่ยมที่ Stanford ทำให้เขายังชื่อดัง ในการบรรยายเขาพูดถึงตัวเลขบางอย่างที่เกี่ยวข้องกับระบบคอมพิวติ้ง ต่อมา Peter Norvig เผยแพร่ตัวเลขเหล่านั้นบนอินเทอร์เน็ตครั้งแรก
เวลาผ่านไป ตัวเลขเปลี่ยนไป นี่คือ Web UI แบบโต้ตอบที่ดีสำหรับตัวเลขเหล่านี้ บอกประมาณว่ามันเปลี่ยนไปเท่าไหร่ตลอดปีเป็นฟังก์ชันของเวลา
บทความนี้ไม่ใช่แค่การรวบรวมข้อมูลประมาณของ Jeff Dean แต่รวบรวมตัวเลขทั้งหมดจากแหล่งต่างๆ ควรช่วยคุณในฐานะ System Designer และ Architect ขณะออกแบบ ใช้ตัวเลขเหล่านี้ประมาณทรัพยากรที่ระบบต้องการ
การประมาณค่า Latency ข้อมูลสำหรับปี 2019:
- L1 cache reference: 1 นาโนวินาที
- L2 cache reference: 4 นาโนวินาที
- Mutex Lock / Unlock: 17 นาโนวินาที
- Main memory / RAM reference: 100 นาโนวินาที
- Compress 1 KB ด้วย Zippy (ตอนนี้เรียก Snappy): 2000 นาโนวินาที หรือ 2 ไมโครวินาที
- CPU branch mispredict: 3 นาโนวินาที
- Solid State Drive (SSD) random read: 16 ไมโครวินาที
- Disk (Hard drive / magnetic drive) seek: 3 มิลลิวินาที
- Read 1,000,000 bytes แบบ sequential จาก main memory: 4 ไมโครวินาที
- Read 1,000,000 bytes แบบ sequential จาก SSD: 62 ไมโครวินาที
- Read 1,000,000 bytes แบบ sequential จาก disk: 947 ไมโครวินาที
- Round trip network request ใน data centre เดียวกัน: 500 ไมโครวินาที
- Send 2000 bytes ผ่าน commodity network: 62 นาโนวินาที
เวลาที่ Payload ใช้เดินทางผ่าน TCP:
นี่คือเวลาที่ใช้ส่ง Payload ขนาดต่างๆ บนเครือข่ายเซลล์ทั่วโลก สมมติไม่มี Packet Loss
RTT — Round Trip Time — เวลารวมที่แพ็กเก็ตข้อมูล (ชุดไบต์ข้อมูล) ใช้เดินทางจากผู้ส่งไปผู้รับ และผู้รับกลับผู้ส่ง ผ่านเครือข่าย เรียกสั้นๆ ว่า Ping time
- ถ่ายโอน 1 ไบต์ ถึง 13,000 ไบต์ (ประมาณ 13 KB) ใช้ 1 Round Trip หรือ 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 ถึง 91 KB) ใช้ 3 RTT เวลาประมาณ — USA: 450 มิลลิวินาที, อินเดีย: 3600 มิลลิวินาที, บราซิล: 1800 มิลลิวินาที
- 91,001 ไบต์ — 195,000 ไบต์ (91 KB ถึง 195 KB) ใช้ 4 RTT เวลาประมาณ — USA: 600 มิลลิวินาที, อินเดีย: 4800 มิลลิวินาที, บราซิล: 2400 มิลลิวินาที
ดังนั้น Response size มาก = ไบต์มากขึ้น RTT ยาวขึ้น API Latency มากขึ้น และสุดท้าย App ไม่เป็นมิตรกับผู้ใช้
บทความนี้จะอัปเดตเมื่อพบตัวเลขใหม่หรืออัปเดต โปรดแจ้งถ้ารู้ตัวเลขใหม่
บทความนี้เผยแพร่ต้นทางบน Medium ของผู้เขียน ถ้าชอบ กด Clap ให้หน่อย
อ้างอิง:
- 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