คู่มือเกมแลค › L5 อุปกรณ์เครือข่ายในดาต้าเซ็นเตอร์
microburst ที่สวิตช์ Switch microburst drops
ID สาเหตุ dc-microburst · ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ อินฟราเครือข่าย (ทีมอินฟรา), อินฟราเซิร์ฟเวอร์ (ทีมอินฟรา)
เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →
ถ้าเซิร์ฟเวอร์หลายเครื่องส่งแพ็กเก็ตถึงผู้เล่นหลายพันคนพร้อมกันในชั่วขณะเดียว บัฟเฟอร์ขนาดเล็กของพอร์ตสวิตช์ที่ทราฟฟิกนั้นไหลมารวมกันจะล้นภายในไม่ถึง 1 ms
ทำไม เวิลด์บอสเกิดหรือมีสกิลขนาดใหญ่ หรือทิกของเซิร์ฟเวอร์หลายเครื่องตรงกันพอดีจนส่งออกพร้อมกัน → ผลคือ บัฟเฟอร์ (หลายร้อย KB ถึงหลาย MB ต่อพอร์ต) ตรงจุดที่หลายพอร์ตไหลเข้าพอร์ตเดียว หรือจุดที่ข้อมูลไหลจากพอร์ตเร็วไปพอร์ตช้า เต็มในชั่วขณะ → บนหน้าจอ แพ็กเก็ตบางส่วนถูกทิ้ง หลายคนวาร์ปหรือสกิลไม่ออกพร้อมกัน
อาการ วาร์ป , กดไม่ติด/โรลแบ็ค
ปัจจัย แพ็กเก็ตหาย
ใครเจอ บางจุด/บางแชนแนล
เกิดเมื่อไร ตอนคนแห่มารวมกัน
ผู้รับผิดชอบ ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ อินฟราเครือข่าย (ทีมอินฟรา), อินฟราเซิร์ฟเวอร์ (ทีมอินฟรา)
งานฝั่งทีมพัฒนาเกม กระจายการส่งให้สม่ำเสมอภายในทิก (pacing), เหลื่อมเวลาเริ่มทิกของแต่ละเซิร์ฟเวอร์เล็กน้อย
งานฝั่งทีมอินฟรา เครือข่าย: ใช้สวิตช์บัฟเฟอร์ใหญ่, กระจายทราฟฟิก (วางเซิร์ฟเวอร์แยกไปหลายสวิตช์และหลายพอร์ต), เฝ้าดูตัวนับการทิ้งแยกตามพอร์ตสวิตช์ เครื่องเซิร์ฟเวอร์/OS: จำกัดความเร็วส่งรวมของเซิร์ฟเวอร์ (shaper ของ Linux tc)
ตัวเลขที่ควรรู้ พอร์ต 10 Gbps ส่งข้อมูลได้ประมาณ 1.25 MB ใน 1 ms ถ้าทราฟฟิกจากสองพอร์ตไหลเข้าพอร์ตเดียวพร้อมกัน ข้อมูลจะกองเพิ่ม 1.25 MB ทุก 1 ms แม้อัตราการใช้งานเฉลี่ย 1 วินาทีจะอยู่ที่ 10% ในระดับ 1 ms ก็อาจล้นได้
บนกราฟ สูงตามจำนวนคนและโหลด · จำนวนการทิ้งขาออกของพอร์ตสวิตช์
จุดที่ต้องดู เก็บตัวนับการทิ้งขาออก (ifOutDiscards หรือ output drops แล้วแต่อุปกรณ์) ของพอร์ตสวิตช์ที่เซิร์ฟเวอร์ต่ออยู่และของพอร์ตที่ทราฟฟิกนั้นไหลมารวม ด้วยช่วงเวลาสั้นที่สุดเท่าที่ทำได้ แล้วเทียบกับเวลาที่บอสเกิดหรือมีการต่อสู้ขนาดใหญ่ ดูแค่กราฟอัตราการใช้งานเฉลี่ย 1 วินาทีหรือ 1 นาทีจะมองไม่เห็น สัญญาณว่าใช่ อัตราการใช้งานเฉลี่ยต่ำ แต่ทุกครั้งที่คนไปรวมกันที่จุดเดียว การทิ้งขาออกจะเพิ่ม และตอนนั้นผู้เล่นหลายคนแจ้งพร้อมกันว่าวาร์ปหรือสกิลไม่ออก สัญญาณว่าไม่ใช่ ถ้าการทิ้งเพิ่มต่อเนื่องในช่วงที่อัตราการใช้งานเฉลี่ยสูง น่าจะเป็น “ลิงก์ของดาต้าเซ็นเตอร์เต็ม” ถ้า input error (CRC) เพิ่ม น่าจะเป็น “สายเสีย/พอร์ตมี error” วิธีตรวจ ใช้เครื่องมือฝั่งอินฟรา (ไม่ต้องใช้โค้ดเกม)
แหล่งอ้างอิง High-Resolution Measurement of Data Center Microbursts (IMC 2017) ACM burst ในดาต้าเซ็นเตอร์มากกว่า 70% จบภายในหลายสิบ µs, แม้พอร์ตที่อัตราการใช้งานเฉลี่ยราว 9% ก็ยังทิ้งแพ็กเก็ตเพราะ burst Data Center TCP (DCTCP) (SIGCOMM 2010) ACM สวิตช์ทั่วไปมีบัฟเฟอร์ตื้น (48 พอร์ตใช้ร่วมกัน 4 MB, พอร์ตเดียวใช้ได้ถึงราว 700 KB), ถ้าหลาย flow ไหลเข้าพอร์ตเดียวในชั่วขณะสั้น ๆ จะเกิดแพ็กเก็ตหาย RFC 2863: The Interfaces Group MIB IETF ifOutDiscards: จำนวนแพ็กเก็ตที่ส่งออกไม่ได้และถูกทิ้งแม้ไม่มี error ด้วยเหตุผล เช่น ต้องเคลียร์พื้นที่บัฟเฟอร์
สาเหตุที่ควรดูประกอบ
ชั้นเดียวกัน: L5 อุปกรณ์เครือข่ายในดาต้าเซ็นเตอร์
สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (วาร์ป)
ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง