Nhân vật tích hàng nghìn vật phẩm, thư, hoặc có danh sách bạn bè, danh sách chặn, buff nhiều bất thường thì lượng dữ liệu phải xử lý khi vào game, khi lưu và khi thông báo cho xung quanh lớn gấp nhiều lần người khác. Chỉ nhân vật đó chậm, bất kể đường truyền.
Vì sao Nhân vật chơi lâu năm hoặc nhận nhiều phần thưởng sự kiện có tới hàng nghìn món trong túi đồ, hộp thư → Dẫn đến Mỗi lần vào game, chuyển bản đồ, lưu đều phải đọc và ghi DB tương ứng, thông tin trang bị và buff gửi cho xung quanh cũng lớn → Trên màn hình Chỉ nhân vật đó loading vào game lâu, khựng khi mở túi đồ hoặc hộp thư. Nếu server chờ lưu trên thread game thì cả những người xung quanh cũng bị đứng hình chốc lát
Ngay sau đăng nhập hoặc bảo trì, Khi làm một thao tác nhất định, Khi di chuyển hoặc chuyển bản đồ
Phụ trách
Phụ trách chính Phát triển server (Đội phát triển game) · Phối hợp Hạ tầng DB (Đội hạ tầng)
Việc cần làm (Đội phát triển game)
Giới hạn sức chứa túi đồ và hộp thư, tự động dọn thư cũ, chia nhỏ để chỉ tải phần cần thiết, chỉ lưu phần thay đổi và lưu ngoài thread game.
Việc cần làm (Đội hạ tầng)
Tìm trong slow query log các truy vấn chậm lặp lại với cùng một nhân vật rồi chuyển cho đội phát triển game, cung cấp danh sách top nhân vật có nhiều dòng vật phẩm, thư.
Con số tham khảo
Nếu mỗi vật phẩm là một dòng trong DB, nhân vật có 5.000 vật phẩm sẽ đọc 5.000 dòng mỗi lần vào game, gấp vài chục lần một nhân vật bình thường.
Trên đồ thị
Chỉ một phần cao · Thời gian vào game và lưu theo nhân vật, số dòng DB truy vấn theo nhân vật
Chỗ cần xem
Trong log truy vấn chậm của DB (MySQL slow query log, PostgreSQL log_min_duration_statement), tìm các truy vấn đọc, lưu chậm lặp lại với cùng một ID nhân vật, và lấy danh sách top số dòng theo nhân vật trong bảng vật phẩm, thư
Đúng nếu
truy vấn chậm dồn vào vài ID nhân vật, số dòng vật phẩm, thư của các nhân vật đó gấp vài chục lần trung bình, và vào từ PC hoặc đường truyền khác vẫn chậm như vậy
Loại trừ nếu
nhân vật khác cùng tài khoản hoặc người chơi khác cũng cùng chậm → xem thiết bị DB hoặc khóa. Nhân vật đó bình thường trên PC khác → môi trường của người chơi
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
Nếu vào bằng cùng một nhân vật từ PC hoặc đường truyền khác vẫn chậm y như vậy, còn nhân vật khác cùng tài khoản thì bình thường, hãy nghi ngờ dữ liệu nhân vật. Đó là lý do báo cáo lag nhất định phải có tên nhân vật.