ตัวอย่างสถานการณ์:ลองนึกภาพวิทยาลัยชุมชนสมมติแห่งหนึ่งที่คาดว่าจะมีผู้เรียนออนไลน์พร้อมกัน 500 คน ในห้าชั้นเรียน โดยแต่ละชั้นเรียนมีผู้เข้าร่วมประมาณ 100 คน นี่เป็นเพียงตัวอย่างการวางแผน ไม่ใช่เกณฑ์มาตรฐาน เรื่องราวของลูกค้า หรือผลการทดสอบ ทางเลือกในการออกแบบที่สำคัญคือการกำหนดขนาดให้รองรับการประชุมหลายครั้งที่กระจายอยู่บนเซิร์ฟเวอร์หลายเครื่อง การประชุมขนาดใหญ่ที่มีผู้เข้าร่วม 500 คนเพียงครั้งเดียวจะมีความเสี่ยงที่แตกต่างออกไป
การวางแผนความจุของเซิร์ฟเวอร์เริ่มต้นด้วยการจัดสรรทรัพยากรประมวลผลเฉพาะ การเผื่อพื้นที่เครือข่าย และการประมาณการกิจกรรมการประชุมอย่างชัดเจน
BigBlueButton ต้องการอะไรบ้างอย่างเป็นทางการ?
คู่มือการติดตั้ง BigBlueButton ฉบับปัจจุบันระบุข้อกำหนดขั้นต่ำสำหรับการใช้งานบนเซิร์ฟเวอร์เฉพาะ: Ubuntu 22.04 64 บิต, CPU 8 คอร์ที่มีประสิทธิภาพการทำงานแบบ Single-thread สูง, หน่วยความจำ 16 GB พร้อมเปิดใช้งาน Swap และแบนด์วิดท์แบบสมมาตร 250 Mbit/s ขึ้นไป นอกจากนี้ยังต้องการพื้นที่ว่างในดิสก์อย่างน้อย 500 GB เมื่อเก็บรักษาการบันทึก หรือ 50 GB หากปิดใช้งานการบันทึก คู่มือยังต้องการพอร์ต TCP สาธารณะ 80 และ 443, พอร์ต UDP 16384–32768, ชื่อโฮสต์และใบรับรอง SSL ที่ถูกต้อง และรองรับ IPv4 และ IPv6 นี่คือข้อกำหนดขั้นต่ำในการติดตั้งเซิร์ฟเวอร์ ไม่ได้เป็นการรับประกันความจุสำหรับการประชุมประเภทใดประเภทหนึ่ง โปรดตรวจสอบหน้าการติดตั้งสำหรับเวอร์ชันที่คุณวางแผนจะใช้งาน เนื่องจากข้อกำหนดของระบบปฏิบัติการและแพ็กเกจอาจเปลี่ยนแปลงได้
คำถามที่พบบ่อยของโครงการได้ระบุไว้โดยทั่วไปว่าเซิร์ฟเวอร์ที่ตรงตามข้อกำหนดขั้นต่ำสามารถรองรับผู้ใช้งานพร้อมกันได้ประมาณ 200 คน นี่เป็นเพียงข้อมูลอ้างอิงคร่าวๆ สำหรับการวางแผน ไม่ใช่การรับประกันระดับการให้บริการหรือข้อจำกัดต่อโหนดที่ใช้ได้ทั่วไป BigBlueButton เองก็เตือนว่า CPU ของเซิร์ฟเวอร์ หน่วยความจำ แบนด์วิดท์ การใช้งานเว็บแคมและการแชร์หน้าจอ การกำหนดค่า และเวอร์ชันซอฟต์แวร์ ล้วนส่งผลต่อผลลัพธ์ ดังนั้นควรพิจารณาตัวเลข 200 ผู้ใช้งานนี้เป็นเพียงสมมติฐานเบื้องต้น ซึ่งปริมาณงานของคุณจะต้องตรวจสอบความถูกต้องด้วยตนเอง
จุดเริ่มต้นที่ใช้งานได้จริงสำหรับผู้ใช้งานพร้อมกัน 500 คน
สำหรับวิทยาลัยสมมติ สถาปัตยกรรมเริ่มต้นที่เหมาะสมสำหรับการประเมินคือคลัสเตอร์ BigBlueButton สี่โหนด โดยแต่ละโหนดสื่อต้องมีประสิทธิภาพตรงตามหรือเกินกว่าข้อกำหนดขั้นต่ำในการผลิตปัจจุบัน และใช้ CPU เฉพาะที่มีความถี่สูง หากมีผู้เข้าร่วม 500 คนกระจายอย่างสม่ำเสมอ นั่นหมายถึงเฉลี่ย 125 คนต่อโหนด โหนดที่สี่จะเพิ่มพื้นที่สำหรับการจัดวางการประชุมที่ไม่เท่ากันและการวางแผนการบำรุงรักษา แต่ไม่ได้เป็นการป้องกันโดยอัตโนมัติสำหรับการประชุมที่กำลังทำงานอยู่บนเซิร์ฟเวอร์ที่ล้มเหลว
| ส่วนประกอบ | เริ่มวางแผนเป้าหมาย | ทำไมเรื่องนี้ถึงสำคัญ |
| โหนดสื่อ BigBlueButton | เซิร์ฟเวอร์เฉพาะ 4 เครื่อง แต่ละเครื่องมีซีพียูประสิทธิภาพสูงอย่างน้อย 8 คอร์ และแรม 16 GB | แยกการทำงานด้านสื่อสดออกจากกัน และให้พื้นที่มากขึ้นสำหรับการกระจายการประชุมหลายๆ ครั้ง มากกว่าการใช้โฮสต์ขนาดขั้นต่ำเพียงตัวเดียว |
| เครือข่ายต่อโหนดสื่อ | ความจุสมมาตรอย่างน้อย 1 Gbit/s เป็นเป้าหมายที่เหมาะสมในการประเมิน โดยคำนึงถึงขั้นต่ำอย่างเป็นทางการที่ 250 Mbit/s ด้วย | การใช้งานเสียง เว็บแคม การแชร์หน้าจอ และการดาวน์โหลดของผู้เข้าร่วม ล้วนใช้ความจุของเครือข่าย วัดปริมาณการรับส่งข้อมูลสูงสุดจริงและการสูญเสียแพ็กเก็ต |
| แผ่นดิสก์และการบันทึก | ต้องมีพื้นที่ว่างอย่างน้อย 500 GB ต่อโหนด หากบันทึกข้อมูลในเครื่อง ตามคู่มือการติดตั้ง มิฉะนั้น ให้ประเมินพื้นที่ว่างขั้นต่ำ 50 GB สำหรับการไม่บันทึกข้อมูล | การเติบโตของการบันทึกข้อมูลขึ้นอยู่กับระยะเวลา จำนวนครั้งในการบันทึก และระยะเวลาการเก็บรักษา ควรวางแผนความจุในการจัดเก็บข้อมูลแยกต่างหาก |
| การกำหนดเส้นทางคลัสเตอร์ | ตัวปรับขนาดหรือตัวกระจายโหลดที่รองรับการประชุม พร้อมด้วยการตั้งค่าไคลเอ็นต์/พร็อกซีทั่วไปที่ผ่านการทดสอบแล้วเมื่อจำเป็น | การประชุมใหม่จะต้องถูกกำหนดให้กับโหนด ในขณะที่การประชุมที่กำลังดำเนินอยู่จะยังคงอยู่บนเซิร์ฟเวอร์ที่กำหนดไว้ |
คำแนะนำเรื่องการใช้โหนดสี่โหนดเป็นจุดเริ่มต้นทางวิศวกรรมที่ได้มาจากการกำหนดค่าขั้นต่ำอย่างเป็นทางการและกฎทั่วไปสำหรับผู้ใช้ 200 รายที่ใช้กันมานาน BigBlueButton ไม่ได้เผยแพร่ข้อกำหนดสากลที่รับรองเซิร์ฟเวอร์เฉพาะสี่เครื่องสำหรับปริมาณงานผู้ใช้ 500 รายทุกครั้ง ตัวอย่างเช่น หากเซิร์ฟเวอร์เครื่องหนึ่งใช้งานไม่ได้ เซิร์ฟเวอร์อีกสามเครื่องจะรองรับผู้ใช้ได้เฉลี่ยประมาณ 167 จาก 500 รายเท่านั้น หากสามารถจัดสรรการประชุมใหม่หรือผู้ใช้เชื่อมต่อใหม่ได้ และเซิร์ฟเวอร์ที่เหลือยังคงอยู่ในขีดจำกัดที่ทดสอบไว้ การประชุมที่กำลังดำเนินอยู่บนโหนดที่เสียหายจะไม่ย้ายไปยังโหนดอื่นโดยอัตโนมัติ หากจำเป็นต้องใช้งานต่อเนื่องในระหว่างที่โหนดล้มเหลว ให้ทดสอบขั้นตอนการกู้คืนและพิจารณาเพิ่มความจุมากกว่าแบบจำลองง่ายๆ นี้
เหตุใดการเรียน 5 คลาส (คลาสละ 100 คน) จึงแตกต่างจากการประชุม 1 ครั้ง (ที่มีผู้เข้าร่วม 500 คน)
ระบบคลัสเตอร์ BigBlueButton กระจายการประชุมไปยังเซิร์ฟเวอร์ต่างๆ โดยจะไม่รวมโหนดหลายๆ โหนดเข้าไว้ในตัวประมวลผลสื่อเดียวกันสำหรับการประชุมครั้งเดียว การประชุมขนาด 100 คน 5 คลาส สามารถจัดวางบนเซิร์ฟเวอร์ 4 เครื่องได้ แต่การประชุมขนาด 500 คน คลาสเดียวจะยังคงทำงานบนเซิร์ฟเวอร์ BigBlueButton เพียงเครื่องเดียว คำถามที่พบบ่อย (FAQ) ของโครงการแนะนำว่าไม่ควรจัดการการประชุมขนาด 200 คนขึ้นไปเหมือนกับการใช้งานทั่วไป หากต้องการผู้ชม 500 คน ควรตรวจสอบการออกแบบที่แน่นอนกับทีม BigBlueButton หรือผู้ให้บริการที่มีคุณสมบัติเหมาะสม พิจารณาว่าสามารถแบ่งกิจกรรมออกเป็นห้องโต้ตอบขนาดเล็ก หรือส่งเป็นการออกอากาศแยกต่างหากโดยจำกัดการโต้ตอบของผู้เข้าร่วมได้หรือไม่
รูปแบบการจัดชั้นเรียนจำลองก็มีความสำคัญเช่นกัน หากนักเรียนส่วนใหญ่ฟังเสียงและดูสไลด์ ในขณะที่มีเพียงอาจารย์ผู้สอนเท่านั้นที่แชร์เว็บแคม โหลดสื่ออาจต่ำกว่าการประชุมที่มีผู้เข้าร่วมจำนวนมากเปิดกล้องและแชร์หน้าจอ ในส่วนคำถามที่พบบ่อย (FAQ) ของ BigBlueButton มีอัตราบิตของเว็บแคมตามความละเอียดต่างๆ และวิธีการประมาณการปริมาณการรับส่งข้อมูลของเซิร์ฟเวอร์จากจำนวนเว็บแคมและผู้ดูที่กำลังเผยแพร่ ใช้แบบจำลองนั้นเพื่อสร้างการประมาณการแบนด์วิดท์เบื้องต้น แต่ให้รวมถึงเสียง การส่งสัญญาณ การแชร์หน้าจอ การส่งซ้ำ และค่าใช้จ่ายเพิ่มเติมของโปรโตคอล อย่าคูณ 500 ด้วยอัตราบิตที่คาดเดาไว้หนึ่งค่าแล้วเรียกผลลัพธ์นั้นว่าแผนความจุ
ควรพิจารณาการออกแบบที่รวมถึงเครือข่าย ห้องประชุม และระบบบันทึกต่างๆ
มอบเส้นทางตรงให้แก่การเข้าชมจากสื่อต่างๆ
ใช้การออกแบบเครือข่ายที่อนุญาตให้ไคลเอนต์เบราว์เซอร์เข้าถึงโหนดสื่อแต่ละโหนดที่กำหนดไว้ผ่านพอร์ต TCP และ UDP ที่จำเป็น เอกสารประกอบคลัสเตอร์พร็อกซีของ BigBlueButton อธิบายว่าสตรีมสื่อและการเชื่อมต่อ WebSocket จะถูกแลกเปลี่ยนโดยตรงกับเซิร์ฟเวอร์ที่โฮสต์การประชุม พร็อกซีทั่วไปทำหน้าที่หลักในการส่งต่ออินเทอร์เฟซไคลเอ็นต์และสินทรัพย์เว็บที่เกี่ยวข้อง พร็อกซีแบบย้อนกลับที่ส่งสื่อทั้งหมดผ่านเกตเวย์ขนาดเล็กเพียงแห่งเดียวโดยไม่ได้ตั้งใจอาจกลายเป็นคอขวดได้ ตรวจสอบกฎไฟร์วอลล์ ที่อยู่สาธารณะ DNS ใบรับรอง และแบนด์วิดท์ในทั้งสองทิศทางก่อนทำการทดสอบโหลด
ขนาดพื้นที่จัดเก็บข้อมูลสำหรับการบันทึกขึ้นอยู่กับระยะเวลาการเก็บรักษา ไม่ใช่จำนวนผู้เข้าร่วมงาน
สำหรับตัวอย่างวิทยาลัย ให้ประมาณจำนวนและระยะเวลาของชั้นเรียนที่บันทึกไว้ต่อวัน จากนั้นวัดขนาดของไฟล์บันทึกตัวอย่างจากเวอร์ชันและการตั้งค่าจริง คูณปริมาณงานที่คาดว่าจะได้ในแต่ละวันด้วยจำนวนวันในการเก็บรักษา และเพิ่มระยะเวลาเผื่อการดำเนินงาน คำแนะนำเรื่องพื้นที่ว่าง 500 GB ในคู่มือการติดตั้งเป็นเพียงขั้นต่ำเริ่มต้น ไม่ใช่การรับประกันว่านโยบายการเก็บรักษาใดๆ จะเหมาะสม ตรวจสอบพื้นที่ว่างและคิวการประมวลผลการบันทึก และย้ายไฟล์ที่เก็บถาวรผ่านเวิร์กโฟลว์ที่ผ่านการทดสอบแล้วเท่านั้น
วิธีตรวจสอบความถูกต้องของการประมาณการก่อนเริ่มดำเนินการ
- อธิบายปริมาณงานที่จะเกิดขึ้นบันทึกจำนวนผู้ใช้งานพร้อมกันที่คาดการณ์ไว้ การประชุม จำนวนผู้ใช้งานต่อการประชุม ผู้เผยแพร่และผู้รับชมเว็บแคม การแชร์หน้าจอ การใช้งานเสียง นโยบายการบันทึก ระยะเวลาของเซสชัน และจำนวนครั้งการเข้าร่วมที่กระจัดกระจาย ใช้ตัวอย่างห้าคลาสเฉพาะในกรณีที่คล้ายกับรูปแบบการใช้งานจริงของคุณเท่านั้น
- เลือกโหนดที่มีคุณสมบัติเทียบเท่ากับการใช้งานจริงตรวจสอบให้แน่ใจว่ารุ่นและพฤติกรรมการทำงานของ CPU, หน่วยความจำ, ระบบปฏิบัติการ, เส้นทางเครือข่าย, พื้นที่จัดเก็บ และเวอร์ชันของ BigBlueButton ตรงกัน อินสแตนซ์แบบใช้ร่วมกันหรือแบบจำกัดการทำงานของ CPU อาจทำงานแตกต่างจากอินสแตนซ์แบบเฉพาะสำหรับการประมวลผล
- ทดสอบการเพิ่มจำนวนผู้เข้าร่วมทีละขั้นเริ่มจากกลุ่มเล็กๆ ก่อน แล้วค่อยๆ เพิ่มจำนวนผู้เข้าร่วมพร้อมกันทีละระยะ โดยใช้กล้อง เสียง สไลด์ การแชร์หน้าจอ และการบันทึกภาพที่สมจริง ควรมีช่วงเวลาการเข้าร่วมพร้อมกัน แทนที่จะเป็นการประชุมที่มีผู้เข้าร่วมคงที่เพียงอย่างเดียว
- ตรวจสอบสัญญาณที่ผู้ใช้มองเห็นและเมตริกของเซิร์ฟเวอร์ไปพร้อมกันติดตามความอิ่มตัวของ CPU และคิวการทำงาน แรงดันหน่วยความจำและการสลับข้อมูล ปริมาณงานเครือข่ายและการสูญเสียแพ็กเก็ต พื้นที่ดิสก์และ I/O การรีสตาร์ทบริการ และอาการผิดปกติของการประชุม เช่น เสียงล่าช้าหรือขาดหาย วิดีโอค้าง การแชร์ล้มเหลว หรือการวนลูปการเชื่อมต่อใหม่
- ทำการทดสอบจุดสูงสุดและการฟื้นตัวซ้ำอีกครั้งคงระดับจุดสูงสุดที่คาดการณ์ไว้ให้นานพอที่จะแสดงให้เห็นถึงแรงกดดันด้านความร้อนหรือหน่วยความจำ จากนั้นทดสอบว่าเกิดอะไรขึ้นเมื่อโหนดใดโหนดหนึ่งไม่สามารถใช้งานได้ ตรวจสอบว่าการประชุมใหม่ถูกส่งไปยังโหนดที่ใช้งานได้ดี และบันทึกวิธีการที่ผู้ใช้ที่ได้รับผลกระทบเข้าร่วมอีกครั้ง
- กำหนดขีดจำกัดการใช้งานที่ปลอดภัยควรใช้ผลการทดสอบซ้ำๆ ที่มีกำลังการผลิตเหลือเฟือเป็นพื้นฐานในการกำหนดขีดจำกัดผู้ใช้งานพร้อมกัน ไม่ใช่จากผลการทดสอบครั้งแรกที่ประสบความสำเร็จ ควรทำการทดสอบซ้ำหลังจากอัปเกรดซอฟต์แวร์ เปลี่ยนแปลงนโยบายเว็บแคม การกำหนดค่าการบันทึก หรือฮาร์ดแวร์โฮสติ้ง
สรุปโดยรวมสำหรับการใช้งานกับผู้ใช้ 500 ราย
สำหรับการประชุมที่มีผู้เข้าร่วมพร้อมกัน 500 คน ในหลายๆ การประชุมปกติ ให้เริ่มต้นการประเมินด้วยโหนดสื่อ BigBlueButton เฉพาะ 4 โหนด โดยแต่ละโหนดต้องตรงตามข้อกำหนดขั้นต่ำอย่างเป็นทางการสำหรับการผลิต และมีการจัดวางคลัสเตอร์ที่รองรับการประชุมได้อย่างมีประสิทธิภาพ จัดสรรงบประมาณด้านความจุเครือข่ายอย่างเพียงพอ วางแผนพื้นที่จัดเก็บข้อมูลสำหรับการบันทึกโดยพิจารณาจากความต้องการในการเก็บรักษาที่วัดได้ และทดสอบส่วนผสมที่ลงตัวของห้องและสื่อต่างๆ การออกแบบนี้เป็นเพียงสมมติฐานในการกำหนดขนาด ไม่ใช่ข้อพิสูจน์ว่าอินสแตนซ์คลาวด์ใดๆ สามารถรองรับผู้ใช้ 500 คนได้ ห้องประชุมขนาด 500 คนห้องเดียวมีภาระงานที่แตกต่างกัน และไม่ควรนำมาอนุมานจากขนาดรวมของคลัสเตอร์
เอกสารอ้างอิงอย่างเป็นทางการ