คู่มือเกมแลค › L13 สถาปัตยกรรมเซิร์ฟเวอร์และการดูแลระบบ
คิวล็อกอินชนเพดานและ grace period ตอนเชื่อมต่อใหม่ไม่พอ Login queue cap / no reconnect grace
ID สาเหตุ in-login-queue · ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ พัฒนาไคลเอนต์ (ทีมพัฒนาเกม), อินฟราเซิร์ฟเวอร์ (ทีมอินฟรา)
เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →
เมื่อคนแห่เข้ามาทันทีหลังเปิดตัวเกมหรือปิดปรับปรุง คิวล็อกอินจะชนเพดานจนปฏิเสธคนที่จะเข้าคิวใหม่ และผู้เล่นที่รออยู่ถ้าหลุดไปแป๊บเดียวก็เสียลำดับคิวแล้วต้องกลับไปต่อท้าย
ทำไม คนที่จะเข้าเกมมีมากกว่าที่เซิร์ฟเวอร์ล็อกอินรับได้ในครั้งเดียว จึงต้องมีคิว และถ้าคิวยาวเกินไปก็ปฏิเสธการเข้าคิวใหม่เพื่อปกป้องเซิร์ฟเวอร์ → ผลคือ ยิ่งคิวยาว เวลารอยิ่งนาน และระหว่างนั้นถ้า Wi-Fi หรือเครือข่ายมือถือหลุดแค่แป๊บเดียวก็เสียลำดับคิว → บนหน้าจอ เข้าเกมไม่ได้/โหลดไม่จบ, เกมปิดตัวพร้อม error ระหว่างรอ, ต้องกลับไปรอท้ายคิวใหม่
อาการ เข้าเกมไม่ได้/โหลดไม่จบ , หลุด
ปัจจัย การหยุดชะงัก
ใครเจอ ทั้งเซิร์ฟเวอร์, เราคนเดียว
เกิดเมื่อไร หลังล็อกอิน/หลังปิดปรับปรุง, ช่วงพีคหัวค่ำ
ผู้รับผิดชอบ ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ พัฒนาไคลเอนต์ (ทีมพัฒนาเกม), อินฟราเซิร์ฟเวอร์ (ทีมอินฟรา)
งานฝั่งทีมพัฒนาเกม เซิร์ฟเวอร์: ตั้งเพดานคิวให้ตรงกับปริมาณที่เซิร์ฟเวอร์ล็อกอินประมวลผลได้จริง, เก็บลำดับคิวของผู้เล่นที่หลุดระหว่างรอไว้ช่วงหนึ่ง (grace period ตอนเชื่อมต่อใหม่), แสดงลำดับคิวและเวลารอโดยประมาณ, เก็บความยาวคิว, จำนวนที่ถูกปฏิเสธ และจำนวนที่หลุดระหว่างรอเป็นเมตริก ไคลเอนต์: ถ้าหลุดระหว่างรอ ให้เชื่อมต่อกลับเข้าตำแหน่งเดิมอัตโนมัติโดยไม่ปิดเกม, กระจายช่วงห่างของการลองใหม่ด้วย exponential backoff และ jitter
งานฝั่งทีมอินฟรา เครื่องเซิร์ฟเวอร์/OS: ทดสอบโหลดก่อนเปิดตัวเพื่อวัดขีดจำกัดการประมวลผลของเซิร์ฟเวอร์ล็อกอินและล็อบบี้, ตอนเปิดตัวเตรียมให้เพิ่มเครื่องสำรองได้ทันที, ดูเมตริกคิวบนกราฟเดียวกับจำนวนครั้งที่พยายามเชื่อมต่อ
ตัวเลขที่ควรรู้ ตอนเปิดตัวภาคเสริม FINAL FANTASY XIV ในปี 2021 ถ้าจำนวนคนรอในแต่ละ logical data center เกิน 17,000 คน จะปฏิเสธการเข้าคิวใหม่ (Error 2002) และถ้าหลุดระหว่างรอ lobby server จะรอให้หลายสิบวินาทีถึง 1 นาที ถ้าต่อกลับเข้ามาภายในเวลานั้น จะได้ต่อคิวจากตำแหน่งเดิมกลางคิว
บนกราฟ ชนเพดานแล้วแบนราบ · ความยาวคิวล็อกอิน, จำนวนที่ถูกปฏิเสธเพราะชนเพดาน, จำนวนที่หลุดระหว่างรอ
จุดที่ต้องดู วางความยาวคิว, เวลารอเฉลี่ย, จำนวนที่ถูกปฏิเสธเพราะชนเพดาน และจำนวนที่หลุดระหว่างรอ ที่เซิร์ฟเวอร์ล็อกอินและล็อบบี้บันทึกไว้ บนกราฟเดียวกับจำนวนครั้งที่พยายามเชื่อมต่อ สัญญาณว่าใช่ ทันทีหลังเปิดตัวหรือปิดปรับปรุง ระหว่างที่ความยาวคิวชนเพดานแล้วแบนราบ จำนวนที่ถูกปฏิเสธเพิ่มขึ้น และการหลุดระหว่างรอกระจุกอยู่ที่ผู้เล่น Wi-Fi และเครือข่ายมือถือ สัญญาณว่าไม่ใช่ คิวสั้นแต่ล็อกอินช้า: น่าจะเป็น DB (db-login-storm) หรือคิวรอเชื่อมต่อของ OS (so-backlog) วิธีตรวจ ต้องมี log หรือเมตริกจากเซิร์ฟเวอร์/ไคลเอนต์เกม
รายละเอียดเพิ่มเติม กรณีที่คนแห่ล็อกอินจน DB ช้า อธิบายไว้ใน “คนแห่ล็อกอินและคิวรี N+1” และกรณีที่คิวรอเชื่อมต่อของ OS ล้น อธิบายไว้ใน “คิวรอเชื่อมต่อ (backlog) ล้น” การ์ดนี้เป็นปัญหาการออกแบบคิวล็อกอินที่เกมตั้งใจสร้างไว้ เพดานคิวเป็นกลไกป้องกันเซิร์ฟเวอร์ล็อกอินจึงเอาออกไม่ได้ เพราะต้องปฏิเสธคำขอส่วนเกินแต่เนิ่น ๆ จึงจะประมวลผลคำขอที่รับไหวต่อไปได้ สิ่งสำคัญคือลดความเสียหายที่การปฏิเสธและการหลุดสร้างให้ผู้เล่น และยิ่งคิวยาว error ยิ่งไปกระจุกที่ผู้เล่นที่เน็ตไม่นิ่ง เช่น Wi-Fi และเครือข่ายมือถือ
กรณีจริง Square Enix 2021: FINAL FANTASY XIV แออัดช่วงเปิดตัวภาคเสริม และ error ในคิวล็อกอิน
แหล่งอ้างอิง Response to Congestion (as of Dec. 11) Square Enix ถ้าจำนวนคนรอในแต่ละ logical data center เกิน 17,000 คน จะปฏิเสธการเข้าคิวใหม่เพื่อไม่ให้เซิร์ฟเวอร์ล็อกอินล่ม (Error 2002), ถ้าหลุดระหว่างรอ lobby server จะรอหลายสิบวินาทีถึง 1 นาที ถ้าต่อกลับมาภายในเวลานั้นได้ต่อจากตำแหน่งเดิมกลางคิว ถ้าเกินจะไปต่อท้าย Using load shedding to avoid overload Amazon Builders' Library load shedding ที่ปฏิเสธคำขอส่วนเกินแต่เนิ่น ๆ เพื่อให้ประมวลผลคำขอที่รับไหวต่อไปได้
สาเหตุที่ควรดูประกอบ
ชั้นเดียวกัน: L13 สถาปัตยกรรมเซิร์ฟเวอร์และการดูแลระบบ
สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (เข้าเกมไม่ได้/โหลดไม่จบ)
ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง