คู่มือเกมแลค › L9 โปรเซสเกมฝั่งเซิร์ฟเวอร์
เซิร์ฟเวอร์แครช Server process crash
ID สาเหตุ sp-crash · ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ อินฟราเซิร์ฟเวอร์ (ทีมอินฟรา)
เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →
ถ้าโปรเซสเซิร์ฟเวอร์ตายเพราะข้อผิดพลาดที่ไม่ได้จัดการ ทุกคนในเซิร์ฟเวอร์นั้นจะหลุดพร้อมกัน
ทำไม ข้อผิดพลาดร้ายแรง เช่น อ้างถึงสิ่งที่ไม่มีอยู่ (null reference), ข้อมูลผิดพลาด หรือหน่วยความจำไม่พอ → ผลคือ โปรเซสเซิร์ฟเวอร์ (หรือโซน) จบการทำงาน → บนหน้าจอ ทุกคนหลุดพร้อมกัน ความคืบหน้าหลังการบันทึกครั้งล่าสุดอาจโดนโรลแบ็ค
อาการ หลุด , กดไม่ติด/โรลแบ็ค
ปัจจัย การหยุดชะงัก
ใครเจอ บางจุด/บางแชนแนล, ทั้งเซิร์ฟเวอร์
เกิดเมื่อไร สุ่มเป็นครั้งคราว, ตอนทำแอ็กชันบางอย่าง
ผู้รับผิดชอบ ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ อินฟราเซิร์ฟเวอร์ (ทีมอินฟรา)
งานฝั่งทีมพัฒนาเกม วิเคราะห์ crash dump แล้วแก้ที่ต้นเหตุ, บันทึกข้อมูลบ่อย ๆ
งานฝั่งทีมอินฟรา รีสตาร์ตโปรเซสอัตโนมัติ, เตรียมระบบเก็บและรักษา crash dump, ตั้ง alert ทันทีที่เซิร์ฟเวอร์ล่ม
บนกราฟ การเชื่อมต่อหลุดพร้อมกัน · จำนวนการเชื่อมต่อ, จำนวนครั้งที่โปรเซสรีสตาร์ต
จุดที่ต้องดู บันทึก core dump ใน coredumpctl list (เวลา, PID, สัญญาณที่ทำให้จบ) และบันทึกการจบผิดปกติและการรีสตาร์ตของ service manager (systemd) สำหรับเซิร์ฟเวอร์ Windows ดูไฟล์ dump ที่ WER เก็บไว้ สัญญาณว่าใช่ ตอนที่จำนวนการเชื่อมต่อดิ่งลงเกือบ 0 ทันที โปรเซสเซิร์ฟเวอร์เกมจบแบบผิดปกติและทิ้ง core dump ไว้ สัญญาณว่าไม่ใช่ โปรเซสยังทำงานอยู่แต่การเชื่อมต่อหลุด: น่าจะเป็นอุปกรณ์เครือข่ายหรือ idle timeout ถ้ามีบันทึกว่า watchdog รีสตาร์ตหลังหยุดไปนาน: น่าจะเป็นลูปไม่รู้จบหรือเดดล็อก วิธีตรวจ ใช้เครื่องมือฝั่งอินฟรา (ไม่ต้องใช้โค้ดเกม)
แหล่งอ้างอิง Collecting User-Mode Dumps Microsoft ตั้งค่า Windows Error Reporting (WER) ให้เก็บ full dump หรือ mini dump ไว้ในเครื่องเมื่อโปรแกรม user mode แครช systemd.service(5) — Linux manual page systemd Restart=on-failure รีสตาร์ตเซอร์วิสอัตโนมัติเมื่อจบผิดปกติ ถูกปิดด้วยสัญญาณ (รวม core dump) หรือ watchdog หมดเวลา แนะนำสำหรับเซอร์วิสที่รันนาน coredumpctl(1) — Linux manual page systemd ใช้ list ดู core dump ที่ systemd-coredump เก็บไว้ แสดงเวลาแครช, PID และสัญญาณที่ทำให้แครช
สาเหตุที่ควรดูประกอบ
ชั้นเดียวกัน: L9 โปรเซสเกมฝั่งเซิร์ฟเวอร์
สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (หลุด)
ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง