한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

คู่มือเกมแลค › 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 ในคิวล็อกอิน

แหล่งอ้างอิง

  1. Response to Congestion (as of Dec. 11) Square Enix
    ถ้าจำนวนคนรอในแต่ละ logical data center เกิน 17,000 คน จะปฏิเสธการเข้าคิวใหม่เพื่อไม่ให้เซิร์ฟเวอร์ล็อกอินล่ม (Error 2002), ถ้าหลุดระหว่างรอ lobby server จะรอหลายสิบวินาทีถึง 1 นาที ถ้าต่อกลับมาภายในเวลานั้นได้ต่อจากตำแหน่งเดิมกลางคิว ถ้าเกินจะไปต่อท้าย
  2. Using load shedding to avoid overload Amazon Builders' Library
    load shedding ที่ปฏิเสธคำขอส่วนเกินแต่เนิ่น ๆ เพื่อให้ประมวลผลคำขอที่รับไหวต่อไปได้

สาเหตุที่ควรดูประกอบ

ชั้นเดียวกัน: L13 สถาปัตยกรรมเซิร์ฟเวอร์และการดูแลระบบ

สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (เข้าเกมไม่ได้/โหลดไม่จบ)

ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง