Khi có sự cố, log tăng đột biến, và server gửi log theo kiểu đồng bộ lại càng chậm hơn vì chính log.
Vì sao Lỗi xảy ra làm lượng log và chỉ số gửi đi tăng đột biến → Dẫn đến Bộ thu thập log bị dồn việc, server gửi đồng bộ phải chờ → Trên màn hình Khi có sự cố, giật khựng và đứng hình càng nặng hơn vì log
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)
Gửi bất đồng bộ, lấy mẫu, bộ đệm đầy thì bỏ bớt, gộp các log cùng một lỗi rồi gửi một lần.
Việc cần làm (Đội hạ tầng)
Chuẩn bị dung lượng bộ thu thập log theo mức tăng đột biến khi có sự cố, cảnh báo khi bộ thu thập bị dồn việc.
Trên đồ thị
Thỉnh thoảng vọt lên bất chợt · Lượng log gửi đi, hàng đợi của bộ thu thập log
Chỗ cần xem
Số dòng log và số byte mỗi giây của server, hàng đợi và số bản ghi bị bỏ của agent thu thập log, xem cùng với thời gian tick. Nếu có thread bị dừng: dùng bcc offcputime -p để xem thread có đang chờ ghi hoặc gửi log không
Đúng nếu
lúc tick vọt lên, lượng log tăng vọt gấp vài chục lần bình thường, và thời gian chờ của thread game dồn vào call stack ghi hoặc gửi log
Loại trừ nếu
lượng log vẫn như bình thường hoặc thread game không chờ ở phía log → log tăng đột biến chỉ là hệ quả của sự cố, cần tìm riêng nguyên nhân gây ra lỗi đầu tiên
Cách kiểm tra
Kiểm tra bằng công cụ hạ tầng (không cần code game)
Nguồn
Logging in C#Microsoft Phương thức ghi log của .NET là đồng bộ, nên nếu nơi lưu chậm thì khuyến nghị ghi trước vào nơi lưu nhanh rồi chuyển sau, thay vì ghi thẳng vào đó
Asynchronous loggersApache Software Foundation Ghi log bất đồng bộ hấp thụ các đợt tăng ngắn bằng hàng đợi, nhưng nếu đầu ra chậm kéo dài thì hàng đợi đầy, rồi tốc độ tụt xuống bằng đầu ra chậm nhất hoặc log bị bỏ tùy theo chính sách (Discard)