Với kiến trúc mỗi khu vực do một thread phụ trách, khi người chơi dồn vào một chỗ, chỉ một core đó lên 100%.
Vì sao Mỗi khu vực (kênh) do một thread phụ trách → Dẫn đến Người chơi dồn vào một chỗ thì chỉ core đó bão hòa, các core còn lại vẫn dư → Trên màn hình Chỉ khu vực đó bị lag, các khu vực khác vẫn bình thường
Phụ trách chính Phát triển server (Đội phát triển game) · Phối hợp Hạ tầng server (Đội hạ tầng)
Việc cần làm (Đội phát triển game)
Phân tán sang nhiều kênh, song song hóa bên trong khu vực, giới hạn số người.
Việc cần làm (Đội hạ tầng)
Thêm mức sử dụng CPU theo từng core vào giám sát và cảnh báo (một core bão hòa sẽ bị che lấp trong mức trung bình của cả server).
Con số tham khảo
Trên server 16 core, dù một core đang 100%, mức sử dụng CPU của cả server chỉ hiện khoảng 6%. Phải xem mức sử dụng theo từng core mới tìm ra.
Trên đồ thị
Tăng theo số người và tải · Mức sử dụng CPU theo từng core, CPU theo từng thread
Chỗ cần xem
Mức sử dụng theo từng core qua mpstat -P ALL 1 và CPU theo từng thread của tiến trình game qua pidstat -t 1, so với số người trong zone mà thread bận nhất phụ trách
Đúng nếu
CPU của cả server thấp nhưng chỉ một thread (một core) dính sát 100%, và lúc đó zone mà thread đó phụ trách đang đông người
Loại trừ nếu
nhiều core cao đều nhau → cả server quá tải. Chỉ %soft (xử lý nhận) của một core cao → ngắt NIC dồn vào một core
Cách kiểm tra
Kiểm tra bằng công cụ hạ tầng (không cần code game)
Tìm hiểu thêm
Các khu vực khác chỉ bình thường khi mỗi khu vực chạy tick riêng. Nếu các thread khu vực mỗi tick phải chờ nhau rồi cùng sang tick tiếp theo, thì khu vực bận nhất sẽ làm chậm tick của cả server.
Time Dilation – How’s That Going?CCP Games Time Dilation của EVE Online áp dụng theo node, nên cả những hệ sao ở xa nằm cùng node cũng chậm theo; trận đánh lớn được xử lý trên node tăng cường chỉ chứa 4 hệ sao
mpstat(1) — Linux manual pagesysstat Hiển thị riêng mức sử dụng của từng bộ xử lý và mức trung bình chung (-P ALL); %soft là tỷ lệ thời gian dùng để xử lý ngắt mềm (software interrupt)
pidstat(1) — Linux manual pagesysstat -t hiển thị kèm thống kê theo từng thread thuộc tiến trình (mức sử dụng CPU, v.v.)