Computer >> คอมพิวเตอร์ >  >> ระบบเครือข่าย >> อินเทอร์เน็ต

นี่คือตัวเลขที่วิศวกรคอมพิวเตอร์ทุกคนควรรู้

ในปี 2010 Jeff Dean จาก Google ได้กล่าวสุนทรพจน์ที่ยอดเยี่ยมที่ Stanford ซึ่งทำให้เขามีชื่อเสียงมาก ในนั้นเขาได้พูดถึงตัวเลขสองสามตัวที่เกี่ยวข้องกับระบบคอมพิวเตอร์ จากนั้น Peter Norvig ได้เผยแพร่ตัวเลขเหล่านั้นบนอินเทอร์เน็ตเป็นครั้งแรก

เวลาผ่านไปและตัวเลขก็เปลี่ยนไป นี่คือ UI เว็บเชิงโต้ตอบที่ดีมากของตัวเลขเหล่านั้น ซึ่งบอกคร่าวๆ ว่าพวกเขาเปลี่ยนแปลงไปมากน้อยเพียงใดในช่วงเวลาหลายปี

บทความนี้ไม่ได้เป็นเพียงการรวบรวมข้อมูลโดยประมาณของ Jeff Dean แต่ยังรวบรวมตัวเลขดังกล่าวทั้งหมดจากแหล่งต่างๆ สิ่งนี้จะช่วยคุณในฐานะนักออกแบบระบบและสถาปนิก ขณะออกแบบ คุณสามารถใช้ตัวเลขเหล่านี้เพื่อประเมินปริมาณทรัพยากรที่ระบบต้องการได้

การประมาณค่าคร่าวๆ ของข้อมูลเวลาในการตอบสนองสำหรับปี 2019:

  1. การอ้างอิงแคช L1:1 นาโนวินาที
  2. การอ้างอิงแคช L2:4 นาโนวินาที
  3. ล็อค Mutex / ปลดล็อก:17 นาโนวินาที
  4. อ้างอิงหน่วยความจำหลัก / RAM:100 นาโนวินาที
  5. บีบอัดขนาด 1 KB ด้วย Zippy (ปัจจุบันเรียกว่า Snappy):2000 นาโนวินาทีหรือ 2 ไมโครวินาที
  6. สาขา CPU ทำนายผิด:3 นาโนวินาที
  7. โซลิดสเตตไดรฟ์ (SSD) สุ่มอ่าน:16 ไมโครวินาที
  8. ดิสก์ (ฮาร์ดไดรฟ์ / ไดรฟ์แม่เหล็ก) ค้นหา:3 มิลลิวินาที
  9. อ่าน 1,000,000 ไบต์ตามลำดับจากหน่วยความจำหลัก:4 ไมโครวินาที
  10. อ่าน 1,000,000 ไบต์ตามลำดับจาก SSD:62 ไมโครวินาที
  11. อ่าน 1,000,000 ไบต์ตามลำดับจากดิสก์:947 ไมโครวินาที
  12. คำขอเครือข่ายไปกลับในศูนย์ข้อมูลเดียวกัน :500 ไมโครวินาที
  13. ส่ง 2,000 ไบต์ผ่านเครือข่ายสินค้าโภคภัณฑ์:62 นาโนวินาที

เวลาที่ใช้สำหรับเพย์โหลดเพื่อเดินทางผ่าน TCP:

นี่คือระยะเวลาที่ต้องใช้ในการส่งข้อมูลต่างๆ บนเครือข่ายเซลล์ทั่วไปทั่วโลก โดยที่ข้อมูลจะไม่สูญหาย

RTT — เวลาไปกลับ — เวลาทั้งหมดที่ใช้สำหรับแพ็กเก็ตข้อมูล (กลุ่มไบต์ข้อมูล) เพื่อเดินทางจากผู้ส่งไปยังผู้รับ และผู้รับไปยังผู้ส่งผ่านเครือข่าย เรียกสั้นๆว่าเวลาปิง

  1. การถ่ายโอนข้อมูล 1 ไบต์ถึง 13,000 ไบต์ (ประมาณ 13 KB) ใช้เวลา 1 รอบการเดินทางหรือ 1 RTT ใช้เวลาคร่าวๆ — สหรัฐอเมริกา:150 มิลลิวินาที อินเดีย:1200 มิลลิวินาที บราซิล:600 มิลลิวินาที
  2. 13,001 ไบต์ — 39,000 ไบต์ (13 KB ถึง 39 KB) ใช้ 2 RTT ใช้เวลาคร่าวๆ — สหรัฐอเมริกา:300 มิลลิวินาที อินเดีย:2400 มิลลิวินาที บราซิล:1200 มิลลิวินาที
  3. 39,001 ไบต์ — 91,000 ไบต์ (39 KB ถึง 91KB) ใช้ 3 RTT เวลาคร่าวๆ ที่ใช้ในสหรัฐอเมริกา:450 มิลลิวินาที อินเดีย:3600 มิลลิวินาที บราซิล:1800 มิลลิวินาที
  4. 91,001 ไบต์ — 195,000 ไบต์ (91 KB ถึง 195 KB) ใช้เวลา 4 RTT ใช้เวลาคร่าวๆ — สหรัฐอเมริกา:600 มิลลิวินาที อินเดีย:4800 มิลลิวินาที บราซิล:2400 มิลลิวินาที

ดังนั้นขนาดการตอบสนองที่มากขึ้นหมายถึงจำนวนไบต์ที่มากขึ้น การเดินทางไปกลับที่ยาวนานขึ้น เวลาแฝงของ API ที่มากขึ้น และแอปที่เป็นมิตรกับผู้ใช้ในท้ายที่สุด

โพสต์นี้จะได้รับการอัปเดตเมื่อพบหมายเลขใหม่หรือหมายเลขที่อัปเดต โปรดแจ้งให้เราทราบหากคุณทราบหมายเลขใหม่

บทความนี้เผยแพร่ครั้งแรกบนกำแพงขนาดกลางของผู้แต่ง ถ้าชอบฝากปรบมือให้ด้วยนะครับ

อ้างอิง:

  1. https://colin-scott.github.io/blog/2012/12/24/latency-trends/
  2. https://blog.std.in/2015/05/23/http-response-sizes-and-tcp/
  3. https://medium.com/@kousiknath/must-know-numbers-for-every-computer-engineer-6338a12c292c