Koyeb บรรลุการเริ่มต้น VM แบบ Cold Start ใน 200ms ด้วย eBPF และ Snapshots จุดประกายการอภิปรายเรื่องศักยภาพในการเพิ่มประสิทธิภาพ

ทีมชุมชน BigGo
Koyeb บรรลุการเริ่มต้น VM แบบ Cold Start ใน 200ms ด้วย eBPF และ Snapshots จุดประกายการอภิปรายเรื่องศักยภาพในการเพิ่มประสิทธิภาพ

การประกาศล่าสุดของ Koyeb ที่บรรลุการเริ่มต้นแบบ cold start สำหรับเวอร์ชวลแมชชีนใน 200ms ได้สร้างการอภิปรายอย่างมากในชุมชนเทคโนโลยี โดยผู้เชี่ยวชาญตั้งคำถามว่าเหตุการณ์สำคัญด้านประสิทธิภาพนี้แสดงถึงขีดจำกัดทางทฤษฎีหรือยังมีพื้นที่สำหรับการเพิ่มประสิทธิภาพเพิ่มเติม

แพลตฟอร์ม serverless ได้อธิบายรายละเอียดฟีเจอร์ Light Sleep ของพวกเขา ซึ่งใช้ VM snapshots ร่วมกับโปรแกรม eBPF (extended Berkeley Packet Filter) เพื่อตรวจจับแอปพลิเคชันที่ไม่ได้ใช้งานและปลุกพวกมันเมื่อมีความต้องการ แนวทางของพวกเขาเกี่ยวข้องกับการหยุดเวอร์ชวลแมชชีนทั้งหมดลงดิสก์และกลับมาทำงานเมื่อมีการเข้าชมเกิดขึ้น แทนที่จะใช้แนวทางการปรับขนาดแบบ container-based แบบดั้งเดิม

เมตริกประสิทธิภาพ Koyeb Light Sleep:

  • เวลา Cold start: ~200ms สำหรับ CPU workloads
  • Technology stack: Cloud Hypervisor + Kata Containers + eBPF
  • โซลูชันก่อนหน้า: Firecracker VMM (ย้ายออกเนื่องจากข้อจำกัดของ GPU)
  • วิธี Snapshot: บันทึกสถานะ VM แบบเต็มลงดิสก์รวมถึงหน่วยความจำ
  • การตรวจจับ Idle: การตรวจสอบแพ็กเก็ตระดับเคอร์เนลผ่านโปรแกรม eBPF
การประกาศของ Koyeb เกี่ยวกับฟีเจอร์ Light Sleep ของพวกเขา โดยเน้นความสำเร็จในการบรรลุ cold start ใน 200ms สำหรับเวอร์ชวลแมชชีน
การประกาศของ Koyeb เกี่ยวกับฟีเจอร์ Light Sleep ของพวกเขา โดยเน้นความสำเร็จในการบรรลุ cold start ใน 200ms สำหรับเวอร์ชวลแมชชีน

ชุมชนตั้งคำถามเรื่องเพดานประสิทธิภาพ

วิศวกร AWS และผู้เชี่ยวชาญอื่นๆ ในชุมชนได้ตั้งคำถามสำคัญเกี่ยวกับเกณฑ์มาตรฐาน 200ms บางคนแนะนำว่าเวลานี้อาจสูงกว่าสิ่งที่เป็นไปได้ทางเทคนิคอย่างมาก โดยเฉพาะเมื่อกู้คืน snapshots บนฮาร์ดแวร์ฟิสิคัลเดียวกัน การอภิปรายมุ่งเน้นไปที่สิ่งที่ใช้เวลา 200 มิลลิวินาทีนั้นจริงๆ - ไม่ว่าจะเป็นการสร้างกระบวนการ VM, การตั้งค่า KVM, การเริ่มต้นอุปกรณ์ หรือการกำหนดค่าเครือข่าย

eBPF: เทคโนโลยีที่อนุญาตให้โปรแกรมกำหนดเองทำงานอย่างปลอดภัยภายใน Linux kernel โดยไม่ต้องการการแก้ไข kernel KVM: Kernel-based Virtual Machine, โครงสร้างพื้นฐานการจำลองเสมือนสำหรับ Linux

การใช้งานทางเทคนิคดึงดูดความสนใจ

ชุมชนได้แสดงความหลงใหลเป็นพิเศษกับโซลูชันเครือข่ายที่ชาญฉลาดของ Koyeb การใช้ packet marking เพื่อแยกแยะระหว่าง health check traffic และคำขอผู้ใช้จริงได้รับการยกย่องว่าเป็นแนวทางที่นวัตกรรม ระบบติดแท็กแพ็กเก็ต health check โดยใช้ metadata ระดับ kernel ทำให้โปรแกรม eBPF สามารถเพิกเฉยต่อพวกมันเมื่อกำหนดว่าแอปพลิเคชันไม่ได้ใช้งานจริงๆ

อย่างไรก็ตาม สมาชิกชุมชนบางคนได้ชี้ให้เห็นความไม่สอดคล้องที่อาจเกิดขึ้นในคำอธิบายทางเทคนิค โดยเฉพาะเกี่ยวกับการอ้างว่าไม่มี polling ในขณะที่ใช้ daemon ที่ตรวจสอบตัวนับ eBPF คนอื่นๆ ได้ชี้แจงว่าการใช้งาน eBPF สมัยใหม่สามารถใช้แนวทาง event-driven แทนการ polling แบบดั้งเดิม

องค์ประกอบสถาปัตยกรรมทางเทคนิค:

  • การจัดการ VM: Cloud Hypervisor พร้อมชั้นนามธรรม Kata Containers
  • การประสานงาน: Nomad สำหรับการจัดการ workload ข้ามโครงสร้างพื้นฐาน
  • การตรวจสอบสุขภาพ: Consul สำหรับการตรวจสอบสุขภาพเป็นระยะพร้อมการทำเครื่องหมาย packet
  • Network Stack: โปรแกรม eBPF แบบกำหนดเองสำหรับการตรวจจับและกรองการรับส่งข้อมูล
  • การจัดเก็บข้อมูล: การหยุดชั่วคราว/กลับมาทำงานแบบ snapshot-based พร้อมการรวม containerd
  • Agent: scaletozero-agent daemon สำหรับการตรวจสอบและการเริ่มต้นโหมดพักหยุด

การเปรียบเทียบกับแนวทางทางเลือก

การประกาศนี้ได้กระตุ้นการอภิปรายเกี่ยวกับเทคโนโลยีและแนวทางที่แข่งขัน สมาชิกชุมชนได้อ้างอิงโครงการวิจัยเช่น Rund และตั้งคำถามว่าโซลูชันของ Koyeb เปรียบเทียบกับ VM snapshots ที่ใช้ unikernel อย่างไร นอกจากนี้ยังมีความสนใจที่เพิ่มขึ้นว่าความสามารถที่คล้ายคลึงกันสามารถนำเสนอเป็นบริการคลาวด์ที่จัดการได้หรือไม่ โดยเฉพาะสำหรับกรณีการใช้งานเช่น CI/CD workers ที่ต้องการความสามารถ VM เต็มรูปแบบแต่ต้องการหลีกเลี่ยงการจ่ายเงินสำหรับเวลาที่ไม่ได้ใช้งาน

ข้อกังวลเรื่องการจัดการหน่วยความจำถูกหยิบยก

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

การอภิปรายสะท้อนความสนใจของอุตสาหกรรมในวงกว้างต่อประสิทธิภาพ serverless computing และความท้าทายที่ต่อเนื่องในการสร้างสมดุลระหว่างประสิทธิภาพกับการใช้ทรัพยากร ในขณะที่ความสำเร็จของ Koyeb แสดงถึงก้าวสำคัญไปข้างหน้า การสนทนาของชุมชนชี้ให้เห็นว่าอาจมีโอกาสสำหรับเวลา cold start ที่เร็วยิ่งขึ้นเมื่อเทคโนโลยียังคงพัฒนาต่อไป

อ้างอิง: SCALE-TO-ZERO: WAKE VMS IN 200MS WITH LIGHT SLEEP, EBPF, AND SNAPSHOTS