RISC-V แซนด์บ็อกซ์สามารถแยกโพรเซสได้ในระดับไมโครวินาทีด้วยความเร็ว 1.7 ล้านคำขอต่อวินาที

BigGo Editorial Team
RISC-V แซนด์บ็อกซ์สามารถแยกโพรเซสได้ในระดับไมโครวินาทีด้วยความเร็ว 1.7 ล้านคำขอต่อวินาที

ความท้าทายในการรันโค้ดที่ไม่น่าเชื่อถืออย่างปลอดภัยพร้อมรักษาประสิทธิภาพสูงเป็นความกังวลมาอย่างยาวนานในการประมวลผลบนคลาวด์และบริการเว็บ โปรเจกต์ใหม่ที่ชื่อว่า Drogon Sandbox ได้แสดงให้เห็นถึงวิธีการแก้ปัญหาที่เป็นนวัตกรรม โดยสามารถทำความเร็วได้อย่างน่าประทับใจในขณะที่ยังรักษาการแยกโพรเซสที่แข็งแกร่ง

การแยกโพรเซสความเร็วสูงด้วยการจำลอง RISC-V

โปรเจกต์นี้ใช้โซลูชันแซนด์บ็อกซ์ที่ไม่เหมือนใครโดยใช้การจำลอง RISC-V ซึ่งช่วยให้สามารถแยกโพรเซสได้อย่างรวดเร็ว ต่างจากเครื่องเสมือนหรือคอนเทนเนอร์แบบดั้งเดิม วิธีนี้สามารถสร้างและทำลายแซนด์บ็อกซ์ภายในระดับไมโครวินาที พร้อมรองรับคำขอได้ถึง 1.7 ล้านคำขอต่อวินาทีด้วย 64 เธรด ระบบนี้เพิ่มโอเวอร์เฮดเพียงประมาณ 1 ไมโครวินาทีเมื่อเทียบกับการตอบสนองของเซิร์ฟเวอร์ Drogon แบบปกติที่ 800,000 คำขอต่อวินาที

ตัวชี้วัดประสิทธิภาพ:

  • 8 เธรด: 803,251 คำขอต่อวินาที, ค่าความหน่วงเฉลี่ย 9.51 ไมโครวินาที
  • 32 เธรด: 1,443,679 คำขอต่อวินาที, ค่าความหน่วงเฉลี่ย 22.49 ไมโครวินาที
  • 64 เธรด: 1,736,727 คำขอต่อวินาที, ค่าความหน่วงเฉลี่ย 39.44 ไมโครวินาที

การเปรียบเทียบโอเวอร์เฮด:

  • Drogon แบบดั้งเดิม: ค่าความหน่วงเฉลี่ย 8.54 ไมโครวินาที
  • เวอร์ชัน Sandbox: ค่าความหน่วงเฉลี่ย 9.51 ไมโครวินาที
  • โอเวอร์เฮดเพิ่มเติม: ประมาณ 1 ไมโครวินาทีต่อคำขอ

ความปลอดภัยผ่านการแยกโพรเซสอย่างสมบูรณ์

การสนทนาในชุมชนเผยว่าโมเดลความปลอดภัยนี้อาศัย libriscv ซึ่งจำลองโปรแกรม RISC-V ในบริบทที่แยกออกมา โดยมีการควบคุม Linux syscalls อย่างระมัดระวัง วิธีนี้แตกต่างจากเครื่องเสมือนที่ใช้ไฮเปอร์ไวเซอร์แบบดั้งเดิม โดยนำเสนอกลไกการแยกโพรเซสที่เบากว่าแต่ยังมีประสิทธิภาพ

ขอบเขตระหว่างโฮสต์และเกสต์ API ของ system call จะเป็นช่องโหว่ที่ใหญ่ที่สุดไม่ว่าจะใช้โซลูชันใดก็ตาม แต่ถ้าคุณพบปัญหาและแก้ไขมัน คุณก็จะกลับมาปลอดภัยอีกครั้ง ซึ่งต่างจากกรณีที่ไม่มีการใช้แซนด์บ็อกซ์เลย

วิธีการทางเลือกและกรณีการใช้งาน

ในขณะที่โปรเจกต์นี้เป็นเพียงการพิสูจน์แนวคิด ชุมชนได้เน้นย้ำถึงโซลูชันทางเลือกหลายอย่างสำหรับกรณีการใช้งานที่คล้ายกัน รวมถึง Firecracker สำหรับการแยก VM แบบสมบูรณ์, gVisor สำหรับเวิร์กโหลดแบบคอนเทนเนอร์ และ Lua พร้อมแซนด์บ็อกซ์สำหรับการพัฒนาเกม แต่ละวิธีมีข้อดีข้อเสียที่แตกต่างกันในด้านความปลอดภัย ประสิทธิภาพ และความง่ายในการนำไปใช้

ข้อจำกัดและการประยุกต์ใช้งานจริง

สิ่งสำคัญที่ต้องทราบคือแม้ว่าตัวเลขประสิทธิภาพจะน่าประทับใจ แต่โซลูชันนี้อาจไม่เหมาะกับสภาพแวดล้อมการผลิตทั้งหมด โปรเจกต์นี้ระบุชัดเจนว่ามีเพียงส่วนที่จำเป็นสำหรับการทดสอบประสิทธิภาพที่สมจริงเท่านั้น โดยยังขาดฟีเจอร์ที่พร้อมสำหรับการผลิต เช่น ระบบการสังเกตการณ์ การบันทึกล็อก และระบบการวัดที่ครอบคลุม นอกจากนี้ การที่ใช้การจำลอง RISC-V อาจไม่สามารถทำความเร็วได้เท่ากับโซลูชันที่ใช้การเวอร์ชวลไลซ์ด้วยฮาร์ดแวร์อย่าง Firecracker สำหรับเวิร์กโหลดที่ใช้การประมวลผลหนัก

อ้างอิง: Drogon Sandbox