นี่คือ Fly.Board เอนจินบล็อกที่นักพัฒนาซึ่งเหนื่อยล้ากับความซับซ้อนของ Spring และความหนักของ WordPress ลงมือพัฒนาด้วย C11/C23 เองโดยตรง ขอมาแชร์ผลการทดสอบประสิทธิภาพที่ยืนยันว่าในสภาพแวดล้อม HTTP/3(QUIC) over TLS 1.3 สามารถรองรับ C10k ได้ด้วยไบนารีเดี่ยว
คุณสมบัติหลัก
- Minimalist Stack: ใช้เฟรมเวิร์กที่พัฒนาขึ้นเอง (CWIST) และโครงสร้างแบบไบนารีเดี่ยว
- Pure SSR(Server-Side Rendering): ลดความหน่วงในการเรนเดอร์ฝั่งไคลเอนต์ให้เหลือน้อยที่สุด
- LibTTAK: เครื่องมือจัดการหน่วยความจำแบบคัสตอมที่รับประกันการประมวลผลแบบอะซิงโครนัสและความปลอดภัยของหน่วยความจำ โดยยังคงความเร็วของ C ไว้
- High Performance: ขณะ Idle ใช้หน่วยความจำ 20MB และแม้มีการเชื่อมต่อพร้อมกัน 10,000 รายการก็ยังทำงานแบบหน่วงต่ำได้ที่ระดับ RSS 369MB
- Modern Protocol: รองรับ HTTP/3(QUIC) และ TLS 1.3 บนสแตก C แบบคัสตอม
ผลเบนช์มาร์ก C10k (/usr/bin/time -v วัดผล)
- การเชื่อมต่อพร้อมกัน: 10,000 รายการ (คงสถานะไว้ 24 นาที 46 วินาที)
- การใช้หน่วยความจำ: RSS สูงสุดประมาณ 369 MB (ประมาณ 37KB ต่อการเชื่อมต่อ)
- ประสิทธิภาพ I/O: Major page faults 0 (ไม่มีคอขวดจากดิสก์ I/O)
- ความเสถียรของข้อมูล: เมื่อได้รับ SIGINT จะบันทึกข้อมูลอย่างปลอดภัยผ่าน NukeDB ด้วย FS output จำนวน 89,208 รายการ
เปรียบเทียบกับสแตกเดิม
- WordPress: ใช้ทรัพยากรหนักจากฐาน PHP-FPM/MySQL และจำเป็นต้องมีการแคชหลายชั้น
- Pure SSR(Server-Side Rendering): ลดความหน่วงในการเรนเดอร์บนอุปกรณ์สเปกต่ำให้เหลือน้อยที่สุด
- Spring Boot: มีความซับซ้อนเริ่มต้นและการใช้หน่วยความจำสูงจาก JVM heap และ DI container
- Fly.Board: รองรับ C10k บน VPS ที่มีหน่วยความจำน้อยกว่า 1GB ได้อย่างสบายโดยไม่ต้องมี caching layer แยกต่างหาก
ข้อที่ยังน่าเสียดายและงานต่อไป
- จำเป็นต้องปรับปรุงประสิทธิภาพการประมวลผลใน userspace สำหรับอาการที่ System time สูงกว่า User time
- นอกจากเบนช์มาร์กที่เน้นการอ่านแล้ว ยังมีแผนตรวจสอบภาระงานเขียนของชั้นข้อมูลที่ใช้ SQLite (การเขียนคอมเมนต์/โพสต์พร้อมกัน)
ลิงก์
- GitHub: https://github.com/gg582/fly.board
โปรเจกต์นี้ถูกสร้างขึ้นโดยคำนึงถึงสมดุลระหว่างความสมบูรณ์ทางเทคนิคและการใช้งานจริง หวังว่าจะเป็นอีกทางเลือกที่ดีสำหรับนักพัฒนาที่ต้องการรันบล็อกส่วนตัวบน VPS สเปกต่ำ ยินดีรับทุกคำแนะนำ!
ยังไม่มีความคิดเห็น