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

คู่มือเกมแลค › L9 โปรเซสเกมฝั่งเซิร์ฟเวอร์

ตัวจับเวลาทำงานพร้อมกันจำนวนมาก Synchronized timers

ID สาเหตุ sp-timer-burst · ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม)

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

ถ้าการรีสปอนของมอนสเตอร์ทั้งหมด การหมดอายุของบัฟทั้งหมด และของรางวัลตอนตรงชั่วโมงมารวมในทิกเดียวกัน ทิกนั้นจะหนักขึ้นหลายสิบเท่า

ทำไม ตัวจับเวลาของการรีสปอน การหมดอายุ ของรางวัล และการบันทึกอัตโนมัติถูกตั้งไว้เวลาเดียวกัน → ผลคือ ทิกนั้นทิกเดียวมีงานมากกว่าปกติหลายสิบเท่า → บนหน้าจอ หยุดแวบหนึ่งครั้งทุกเวลาที่กำหนด

อาการ
ค้าง, กระตุก
ปัจจัย
การหยุดชะงัก
ใครเจอ
บางจุด/บางแชนแนล, ทั้งเซิร์ฟเวอร์
เกิดเมื่อไร
เป็นรอบสม่ำเสมอ
ผู้รับผิดชอบ
ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม)
งานฝั่งทีมพัฒนาเกม
สุ่มกระจายเวลาของตัวจับเวลาเล็กน้อย, แบ่งงานไปประมวลผลในหลายทิก
บนกราฟ
พุ่งเป็นรอบ · เวลาต่อทิกของเซิร์ฟเวอร์
จุดที่ต้องดู
รวบรวมเวลาที่ทิกพุ่งแล้วดูช่วงห่าง (ตรงชั่วโมง, ทุก 5 นาที เป็นต้น) เทียบกับรายการตัวจับเวลาของการรีสปอน การหมดอายุบัฟ ของรางวัล และการบันทึกอัตโนมัติที่ทำงานในเวลาเดียวกัน
สัญญาณว่าใช่
ทิกพุ่งเวลาเดิมหรือช่วงห่างเดิมทุกครั้ง และเวลานั้นมีงานจากตัวจับเวลาของเกมที่ทำงานพร้อมกันรวดเดียว
สัญญาณว่าไม่ใช่
เป็นรอบ แต่ตรงกับเวลาหยุดใน GC log หรือเวลา cron และการสำรองข้อมูลของเซิร์ฟเวอร์: น่าจะเป็น “GC ของเซิร์ฟเวอร์หยุดทั้งระบบ” หรือ “งานตามกำหนดเวลา (scheduled job)”
วิธีตรวจ
ต้องมี log หรือเมตริกจากเซิร์ฟเวอร์/ไคลเอนต์เกม

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

  1. Timeouts, retries, and backoff with jitter AWS
    Amazon Builders' Library เพิ่ม jitter ให้ตัวจับเวลา งานตามรอบ และงานที่หน่วงเวลาไว้ทุกตัว เพื่อกระจายโหลดที่จะมารวมกันในเวลาเดียวกัน, กรณีที่คำขอรอบ 1 นาทีจากเซิร์ฟเวอร์หลายเครื่องมากระจุกในไม่กี่วินาทีแรกของทุกนาที

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

ชั้นเดียวกัน: L9 โปรเซสเกมฝั่งเซิร์ฟเวอร์

สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (ค้าง)

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