Nếu server đợi đến lần đầu có yêu cầu mới đọc dữ liệu phó bản hay bản đồ từ ổ đĩa, thì trong tick đó mọi người đều bị dừng.
Vì sao Có người vào một phó bản hoặc khu vực lần đầu → Dẫn đến Server đọc dữ liệu từ ổ đĩa ngay trên thread game → Trên màn hình Mọi người trên server đó đứng hình trong chốc lát
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)
Tải sẵn khi khởi động server, loading bất đồng bộ.
Việc cần làm (Đội hạ tầng)
Với server vừa tạo từ snapshot, làm nóng ổ đĩa (đọc toàn bộ block một lượt) trước khi đưa vào phục vụ, hoặc dùng tính năng khôi phục snapshot nhanh.
Trên đồ thị
Thỉnh thoảng vọt lên bất chợt · Thời gian xử lý tick của server, lượng đọc ổ đĩa
Chỗ cần xem
Đối chiếu thời điểm dừng với bản ghi lần vào phó bản, khu vực đầu tiên trong log server game, và xem lượng đọc ổ đĩa của server game lúc đó (kB_rd/s trong pidstat -d) cùng các lời gọi read, open chạy lâu qua perf trace --duration. Nếu là server cloud mới bật, so sánh VolumeAvgReadLatency của EBS với server đã chạy lâu
Đúng nếu
chỉ dừng đúng lúc vào lần đầu, vào lại chỗ đó lần thứ hai thì không dừng. Trong lúc dừng, thread game đang chờ đọc file
Loại trừ nếu
ở khu vực đã tải xong mà vẫn dừng y như vậy → nguyên nhân khác như vượt tick budget, GC
Cách kiểm tra
Cần log và chỉ số của server, client game
Tìm hiểu thêm
Trên cloud, server vừa được tạo từ snapshot (bản sao ổ đĩa) phải tải từng block đọc lần đầu từ storage từ xa, nên chậm hơn bình thường nhiều. Nếu chỉ trên những server mới được autoscaling bật lên mà lần vào đầu tiên lâu bất thường, hãy nghi ngờ nguyên nhân này.
Nguồn
Initialize Amazon EBS volumesAWS Volume tạo từ snapshot có độ trễ tăng và hiệu năng giảm trong lúc tải block từ S3; khởi tạo trước bằng cách dùng dd hoặc fio đọc toàn bộ block
Amazon EBS fast snapshot restoreAWS Fast snapshot restore cấp volume đã khởi tạo sẵn ngay từ lúc tạo, loại bỏ độ trễ ở lần truy cập đầu