ประสิทธิภาพ
ประสิทธิภาพชั้นนำของอุตสาหกรรม
ภาพรวม
- ชุดทดสอบของไฟล์ธุรกิจ 20 ไฟล์ ซึ่งมีขนาดตั้งแต่ 0.05 MB ถึง 17 MB
- ขนาดไฟล์เฉลี่ย = 3.74 MB
- ประเภทไฟล์ประกอบด้วย: Excel, Word, Powerpoint, วิดีโอ, รูปภาพ, PDF, เสียง
- การทดสอบดำเนินการกับ Halo เวอร์ชัน v2.6.1
AKS
การกำหนดค่า cluster ตั้งอยู่บนสมมติฐานของการจัดสรรหน่วยความจำและทรัพยากรประมวลผลสำหรับ containers แบบเฉพาะเจาะจง ประสิทธิภาพในการใช้งานจริงจะขึ้นอยู่กับขนาดและความซับซ้อนของไฟล์ในโลกความเป็นจริงเสมอ การกำหนดค่าสามารถปรับให้เหมาะสมเพื่อเน้น throughput หรือความเร็วในการประมวลผลไฟล์ได้
สำหรับการทดสอบเหล่านี้ ได้ตั้งค่า requests และ limits ต่อไปนี้บน pods
| บริการ | CPU ที่ร้องขอ | หน่วยความจำที่ร้องขอ | ขีดจำกัด CPU | ขีดจำกัดหน่วยความจำ |
|---|---|---|---|---|
| เอนจิน | 200m | 500Mi (524 MB) | 1 core | 1Gi (1.07 GB) |
| API | 1500m | 4Gi (4.29 GB) | 1500m | 4Gi (4.29 GB) |
ขนาดเล็ก
อ้างอิงจากโหนดเดี่ยว (1 x DS5_v2) ในคลัสเตอร์ Kubernetes ซึ่งประกอบด้วย:
- 10 Engines
- 16 คอร์เสมือน
- หน่วยความจำ 56 GB
| ปริมาณงาน | ไฟล์ที่ประมวลผล | ข้อมูลที่ประมวลผล |
|---|---|---|
| ต่อชั่วโมง | 26,500 | 96 GB |
| ต่อวัน | 635,000 | 2300 GB |
| ความเร็วในการประมวลผลเฉลี่ย | 136ms | |
| อัตราความสำเร็จของ API | 99.999% |
ปานกลาง
อ้างอิงจาก 5 โหนด (5 x DS4_v2) ในคลัสเตอร์ Kubernetes ซึ่งประกอบด้วย:
- 25 Engines
- 8 คอร์เสมือนต่อโหนด รวมทั้งหมด 40
- หน่วยความจำ 28 GB ต่อโหนด รวมทั้งหมด 140
| ปริมาณงาน | ไฟล์ที่ประมวลผล | ข้อมูลที่ประมวลผล |
|---|---|---|
| ต่อชั่วโมง | 54,800 | 200 GB |
| ต่อวัน | 1,300,000 | 4800 GB |
| ความเร็วในการประมวลผลเฉลี่ย | 65ms | |
| อัตราความสำเร็จของ API | 99.999% |
ขนาดใหญ่
อ้างอิงจาก 5 โหนด (5 x DS5_v2) ในคลัสเตอร์ Kubernetes ซึ่งประกอบด้วย:
- 50 Engines
- 16 คอร์เสมือนต่อโหนด รวมทั้งหมด 80
- หน่วยความจำ 56 GB ต่อโหนด รวมทั้งหมด 280
| ปริมาณงาน | ไฟล์ที่ประมวลผล | ข้อมูลที่ประมวลผล |
|---|---|---|
| ต่อชั่วโมง | 93,800 | 343 GB |
| ต่อวัน | 2,250,000 | 8230 GB |
| ความเร็วในการประมวลผลเฉลี่ย | 38ms | |
| อัตราความสำเร็จของ API | 99.999% |
OVA
สำหรับการทดสอบเหล่านี้ ได้ตั้งค่า requests และ limits ต่อไปนี้บน pods
| บริการ | CPU ที่ร้องขอ | หน่วยความจำที่ร้องขอ | ขีดจำกัด CPU | ขีดจำกัดหน่วยความจำ |
|---|---|---|---|---|
| เอนจิน | 1300m | 3Gi (3.22 GB) | 1300m | 3Gi (3.22 GB) |
| Api | 1 core | 3Gi (3.22 GB) | 1 core | 3Gi (3.22 GB) |
ขนาดเล็ก
อ้างอิงจาก VM ขนาดเล็ก (F16s_v2) ที่รัน OVA ซึ่งประกอบด้วย:
| ปริมาณงาน | ไฟล์ที่ประมวลผล | ข้อมูลที่ประมวลผล |
|---|---|---|
| ต่อชั่วโมง | 9,150 | 33 GB |
| ต่อวัน | 220,000 | 800 GB |
| ความเร็วในการประมวลผลเฉลี่ย | 392ms | |
| อัตราความสำเร็จของ API | 99.999% |
- 3 Engines
- 16 คอร์เสมือน
- หน่วยความจำ 32 GB
ขนาดใหญ่
อ้างอิงจาก VM ขนาดใหญ่ (F32s_v2) ที่รัน OVA.
| ปริมาณงาน | ไฟล์ที่ประมวลผล | ข้อมูลที่ประมวลผล |
|---|---|---|
| ต่อชั่วโมง | 13,800 | 50 GB |
| ต่อวัน | 331,400 | 1200 GB |
| ความเร็วในการประมวลผลเฉลี่ย | 260ms | |
| อัตราความสำเร็จของ API | 99.999% |
- 13 Engines
- 32 virtual cores
- 64 GB memory
ความแตกต่างด้านประสิทธิภาพระหว่าง OVA กับ Kubernetes
- OVA ใช้ RKE โดยที่ Kubernetes control plane ก็ใช้ทรัพยากรบนเครื่องด้วยเช่นกัน
- คลัสเตอร์แบบหลายโหนดจำเป็นต้องใช้ file share สำหรับจัดเก็บไฟล์ io กับ share นี้จะทำให้เกิด overhead
- แม้ว่าสิ่งนี้จะจำกัดความสามารถในการขยายระบบ แต่ OVA จะมีความเร็วเครือข่ายระหว่างบริการที่สูงกว่าโดยธรรมชาติ เนื่องจากทั้งหมดอยู่บนเครื่องเดียวกัน