ข้ามไปเนื้อหาหลัก

เจาะลึกการสร้าง ratatop โมดูลเครือข่ายของ btop ในภาษา Rust

ผู้พัฒนา Maneshwar เผยเบื้องหลังการสร้างมอนิเตอร์เครือข่ายสำหรับ btop ในภาษา Rust พร้อมแก้ปัญหาหน่วยความเร็วอินเทอร์เน็ตและการคำนวณกราฟอัปโหลด

เรียบเรียงโดย AI
Inewgen
02 Aug 2026ที่มา: Dev.to2 นาทีอ่าน (0 ครั้ง)อัปเดตล่าสุด 02 Aug 2026
แชร์
เจาะลึกการสร้าง ratatop โมดูลเครือข่ายของ btop ในภาษา Rust

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ขนาดตัวอักษร
  • การพัฒนาโมดูลเครือข่ายของ btop ในภาษา Rust ดำเนินมาถึงวันที่สี่
  • แก้ปัญหาความสับสนเรื่องหน่วยความเร็วระหว่างบิตและไบต์ที่ ISP ใช้
  • ใช้สเกลความเร็วร่วมกันระหว่างดาวน์โหลดและอัปโหลดเพื่อการเปรียบเทียบที่ถูกต้อง
  • ดึงข้อมูล IP ผ่านฟังก์ชัน getifaddrs(3) และจัดการกับไฟล์ /proc/net/dev

Maneshwar ผู้พัฒนาโปรเจกต์ git-lrc ซึ่งเป็น Micro AI code reviewer กำลังอยู่ในวันที่สี่ของการสร้างระบบมอนิเตอร์สไตล์ btop ด้วยภาษา Rust และไลบรารี ratatui โดยในตอนนี้ส่วนของซีพียู หน่วยความจำ และดิสก์ได้เสร็จสิ้นลงแล้ว และล่าสุดส่วนของกล่องเครือข่าย (network box) ก็ถูกเพิ่มเข้ามา ทำให้ตอนนี้ btop เวอร์ชันนี้มีกล่องหลักครบสามจากสี่ส่วน

กระบวนการพัฒนาในส่วนนี้มีประเด็นสำคัญที่ต้องคิดทบทวนอย่างจริงจังอยู่สามเรื่องด้วยกัน ได้แก่ สถานการณ์เรื่องหน่วยวัด (unit situation) การใช้สเกลร่วมกัน (shared scale) และความจริงที่ว่ากราฟอัปโหลดถูกกลับหัวเอาไว้โดยตั้งใจ

2.4%ความผิดพลาดจากการแปลงหน่วยหากคำนวณผิดพลาด

ปัญหาเรื่องหน่วยวัดเริ่มต้นจากความจริงที่ว่า ผู้ให้บริการอินเทอร์เน็ต (ISP) ขายความเร็วอินเทอร์เน็ตให้เราเป็นบิตต่อวินาที (เช่น แพ็กเกจ 100 Mbps หรือ 300 Mbps) ในขณะที่โปรแกรมจัดการดาวน์โหลด เบราว์เซอร์ และการย้ายไฟล์ทุกรูปแบบจะรายงานความเร็วเป็นไบต์ต่อวินาที ส่งผลให้แพ็กเกจ 100 Mbps ที่เราซื้อมาจะมีความเร็วสูงสุดอยู่ที่ประมาณ 12.5 MB/s บนแถบความคืบหน้า และทำให้หลายคนเข้าใจผิดว่าอินเทอร์เน็ตมีปัญหา ทั้งที่มันทำงานตรงตามที่ขายทุกประการ โมดูลนี้จึงแสดงผลทั้งสองหน่วยควบคู่กันไป เพื่อให้ผู้ใช้เทียบกับแพ็กเกจและไฟล์ดาวน์โหลดได้ทันทีโดยไม่ต้องคำนวณในหัว

command line interface graph terminal

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

การแสดงผลความเร็วอินเทอร์เน็ตในหน่วยที่แตกต่างกันระหว่าง ISP (Bits) และซอฟต์แวร์ดาวน์โหลด (Bytes) เป็นสาเหตุคลาสสิกที่ทำให้ผู้ใช้งานสับสนมาอย่างยาวนาน การที่เครื่องมืออย่าง btop นำเสนอทั้งสองค่าพร้อมกันช่วยลดความเข้าใจผิดได้อย่างยอดเยี่ยม โดยใช้ตัวหาร 1024 ตามมาตรฐานทางคอมพิวเตอร์ ซึ่งแม้แต่ความผิดพลาดเพียงเล็กน้อยในตัวเลขทศนิยมก็อาจทำให้ผู้ใช้ประเมินประสิทธิภาพเครือข่ายคลาดเคลื่อนได้

ในด้านการแสดงผลกราฟ กราฟสองอันทางด้านซ้ายจะแบ่งเป็นดาวน์โหลดอยู่ด้านบนและอัปโหลดอยู่ด้านล่าง โดยกราฟด้านล่างจะถูกกลับหัวและเติบโตจากขอบด้านบนลงมา เนื่องจากวิดเจ็ต BrailleGraph เดิมรองรับการวาดจากล่างขึ้นบนเท่านั้น การปรับแก้จึงกินเวลาเพียงสี่บรรทัด แต่จุดที่สำคัญกว่าคือเรื่องของสเกล หากปล่อยให้กราฟแต่ละอันปรับสเกลตามค่าสูงสุดของตัวเอง จะทำให้การอัปโหลดที่ระดับ 3 KB/s และการดาวน์โหลดที่ 3 MB/s ถูกวาดด้วยความสูงเท่ากันจนดูเหมือนมีปริมาณเท่ากัน ดังนั้นจึงต้องใช้สเกลที่คำนวณร่วมกันจากฝั่งที่พุ่งสูงกว่า

ที่มา: Dev.to

ความคิดเห็น

แสดงความคิดเห็น
0/2000

พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้