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

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

พื้นที่ที่รันบนเธรดเดียวโหลดเกิน (hotspot) Single-threaded hot zone

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

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

ในโครงสร้างที่แต่ละพื้นที่มีเธรดดูแลตัวเดียว ถ้าคนแห่ไปที่จุดเดียว คอร์ตัวนั้นตัวเดียวจะขึ้นไป 100%

ทำไม เธรดหนึ่งตัวดูแลหนึ่งพื้นที่ (แชนแนล) → ผลคือ ถ้าคนแห่ไปที่จุดเดียว คอร์นั้นเต็มอยู่ตัวเดียว ส่วนคอร์อื่นยังว่าง → บนหน้าจอ แลคเฉพาะพื้นที่นั้น พื้นที่อื่นปกติ

อาการ
สโลว์โมชั่น, อินพุตดีเลย์
ปัจจัย
การหยุดชะงัก
ใครเจอ
บางจุด/บางแชนแนล
เกิดเมื่อไร
ตอนคนแห่มารวมกัน
ผู้รับผิดชอบ
ผู้รับผิดชอบหลัก พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม) · ร่วมกับ อินฟราเซิร์ฟเวอร์ (ทีมอินฟรา)
งานฝั่งทีมพัฒนาเกม
กระจายผู้เล่นไปหลายแชนแนล, ทำงานภายในพื้นที่แบบขนาน, จำกัดจำนวนผู้เล่น
งานฝั่งทีมอินฟรา
เพิ่มอัตราการใช้ CPU แยกตามคอร์ในการมอนิเตอร์และ alert (คอร์เดียวที่เต็มจะจมหายในค่าเฉลี่ยของทั้งเซิร์ฟเวอร์)
ตัวเลขที่ควรรู้
บนเซิร์ฟเวอร์ 16 คอร์ ต่อให้คอร์หนึ่งอยู่ที่ 100% อัตราการใช้ CPU รวมของเซิร์ฟเวอร์ก็ดูเหมือนแค่ประมาณ 6% ต้องดูอัตราการใช้แยกตามคอร์จึงจะเจอ
บนกราฟ
สูงตามจำนวนคนและโหลด · อัตราการใช้ CPU แยกตามคอร์, CPU แยกตามเธรด
จุดที่ต้องดู
อัตราการใช้แยกตามคอร์จาก mpstat -P ALL 1 และ CPU แยกตามเธรดของโปรเซสเกมจาก pidstat -t 1 เทียบกับจำนวนผู้เล่นในโซนที่เธรดที่ยุ่งที่สุดดูแล
สัญญาณว่าใช่
CPU รวมของเซิร์ฟเวอร์ต่ำ แต่มีเธรดเดียว (คอร์เดียว) อยู่ใกล้ 100% และตอนนั้นคนกระจุกอยู่ในโซนที่เธรดนั้นดูแล
สัญญาณว่าไม่ใช่
หลายคอร์สูงพอ ๆ กัน: ทั้งเซิร์ฟเวอร์โหลดเกิน ถ้า %soft (การประมวลผลแพ็กเก็ตขาเข้า) สูงแค่คอร์เดียว: น่าจะเป็นอินเทอร์รัปต์ของ NIC กระจุกที่คอร์เดียว
วิธีตรวจ
ใช้เครื่องมือฝั่งอินฟรา (ไม่ต้องใช้โค้ดเกม)
รายละเอียดเพิ่มเติม
พื้นที่อื่นจะยังปกติก็ต่อเมื่อแต่ละพื้นที่รันทิกแยกกัน ถ้าเป็นโครงสร้างที่เธรดของหลายพื้นที่รอกันทุกทิกแล้วขยับไปทิกถัดไปพร้อมกัน พื้นที่ที่ยุ่งที่สุดเพียงพื้นที่เดียวจะทำให้ทิกของทั้งเซิร์ฟเวอร์ช้าลง
กรณีจริง
CCP Games 2014: เซิร์ฟเวอร์ EVE Online โหลดเกินในศึกกองยานขนาดใหญ่ที่ HED-GP

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

  1. Time Dilation – How’s That Going? CCP Games
    Time Dilation ของ EVE Online ทำงานเป็นหน่วยโหนด ระบบดาวที่อยู่ไกลแต่รันอยู่บนโหนดเดียวกันจึงช้าไปด้วย, ศึกใหญ่ใช้โหนดเสริมกำลังที่รันระบบดาวเพียง 4 ระบบ
  2. mpstat(1) — Linux manual page sysstat
    แสดงอัตราการใช้ของแต่ละโปรเซสเซอร์แยกจากค่าเฉลี่ยรวม (-P ALL), %soft คือสัดส่วนเวลาที่ใช้จัดการ software interrupt
  3. pidstat(1) — Linux manual page sysstat
    -t แสดงสถิติแยกตามเธรดของโปรเซส (อัตราการใช้ CPU เป็นต้น) ไปด้วย

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

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

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

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