คู่มือเกมแลค › L13 สถาปัตยกรรมเซิร์ฟเวอร์และการดูแลระบบ
มาโครและบอทมากเกินไป Bots and macros
ID สาเหตุ in-bots · ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ อินฟราเครือข่าย (ทีมอินฟรา)
เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →
บอทส่งคำขอถี่กว่าคนมาก จึงกินกำลังประมวลผลของเซิร์ฟเวอร์
ทำไม บอทจำนวนมากเชื่อมต่อเข้ามา ฟาร์มมอน, เดิน และเทรดซ้ำไม่หยุด → ผลคือ ปริมาณงานที่เซิร์ฟเวอร์ต้องประมวลผลและโหลดของ DB เพิ่มขึ้น → บนหน้าจอ บางจุดฟาร์มหรือทั้งเซิร์ฟเวอร์ช้าลง (สโลว์โมชั่น, อินพุตดีเลย์)
- อาการ
- สโลว์โมชั่น, อินพุตดีเลย์
- ปัจจัย
- การหยุดชะงัก
- ใครเจอ
- ทั้งเซิร์ฟเวอร์, บางจุด/บางแชนแนล
- เกิดเมื่อไร
- ตลอดเวลา, ช่วงพีคหัวค่ำ
- ผู้รับผิดชอบ
- ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ อินฟราเครือข่าย (ทีมอินฟรา)
- งานฝั่งทีมพัฒนาเกม
- ตรวจจับบอท, จำกัดความถี่คำขอต่อบัญชีและตัวละคร
- งานฝั่งทีมอินฟรา
- จำกัดความถี่การเชื่อมต่อและคำขอต่อ IP (ร้านเกมและเครือข่ายมือถือมีหลายคนใช้ IP เดียวกัน จึงต้องเผื่อไว้), บล็อกช่วง IP ของบอทด้วยไฟร์วอลล์หรือ WAF
- บนกราฟ
- สูงเฉพาะบางกลุ่ม · จำนวนคำขอต่อวินาทีแยกตามบัญชี/IP
- จุดที่ต้องดู
- ใช้ log ของเซิร์ฟเวอร์เกมดูการกระจายและรายชื่ออันดับต้นของจำนวนคำขอต่อวินาทีแยกตามบัญชีและตัวละคร ถ้าไม่มีเมตริกจากโค้ด ให้ดูจำนวนคำขอแยกตาม IP จากไฟร์วอลล์หรือ WAF
- สัญญาณว่าใช่
- บัญชีหรือ IP ส่วนน้อยส่งคำขอไม่หยุดด้วยความถี่ที่คนทำไม่ได้ และเมื่อจำกัดกลุ่มนี้ โหลดของเซิร์ฟเวอร์ลดลงชัดเจน
- สัญญาณว่าไม่ใช่
- คำขอกระจายเท่า ๆ กันทุกบัญชี: น่าจะเป็นจำนวนผู้เล่นปกติที่เพิ่มขึ้น (ทิกเกินงบเวลา, autoscaling เพิ่มเครื่องไม่ทัน)
- วิธีตรวจ
- ต้องมี log หรือเมตริกจากเซิร์ฟเวอร์/ไคลเอนต์เกม
แหล่งอ้างอิง
- Using rate-based rule statements in AWS WAF AWS
นับจำนวนคำขอตามเกณฑ์ เช่น IP และจำกัดอัตรา (rate limit) ถ้าเกินในช่วงเวลา (time window) ที่กำหนด - RFC 6269: Issues with IP Address Sharing IETF
เมื่อผู้ใช้บริการหลายรายใช้ IP เดียวกัน การบล็อกหรือจำกัดตาม IP จะกันผู้ใช้คนอื่นไปด้วย
สาเหตุที่ควรดูประกอบ
ชั้นเดียวกัน: L13 สถาปัตยกรรมเซิร์ฟเวอร์และการดูแลระบบ
สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (สโลว์โมชั่น)
ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง