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

Sách trắng lag game › L9 Tiến trình game phía server

Đối tượng tích tụ (vật phẩm và vật triệu hồi không được dọn) Entity / timer buildup over uptime

ID nguyên nhân sp-entity-buildup · Phụ trách chính Phát triển server (Đội phát triển game)

Mở thẻ gốc có hình minh họa và thí nghiệm →

Vật phẩm rơi trên đất, vật triệu hồi, timer đã xong lẽ ra phải biến mất. Nếu chúng không được dọn mà cứ tích tụ, server chạy càng lâu thì mỗi tick càng nhiều việc.

Vì sao Vật phẩm rơi trên đất, vật triệu hồi, timer đã hết hạn, dữ liệu tổ đội trống không được xóa kịp thời → Dẫn đến Danh sách phải duyệt mỗi tick dài thêm từng ngày → Trên màn hình Ngay sau bảo trì vẫn bình thường, vài ngày sau chỉ server hoặc khu vực đó ngày càng ì

Triệu chứng
Quay chậm, Giật khựng, Trễ thao tác
Yếu tố
Ngưng trệ
Ai gặp phải
Cả server, Một địa điểm hoặc kênh
Khi nào
Càng chạy lâu càng nặng
Phụ trách
Phụ trách chính Phát triển server (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Ghi số đối tượng theo từng khu vực thành chỉ số để theo dõi xu hướng, đặt tuổi thọ và giới hạn số lượng cho từng loại đối tượng, dọn dẹp định kỳ.
Con số tham khảo
Với server duyệt qua mọi đối tượng một lần mỗi tick, số đối tượng tăng gấp đôi thì phần đó của thời gian tick cũng tăng gấp đôi.
Trên đồ thị
Tăng dần rồi rơi thẳng · Số đối tượng theo từng zone, thời gian tick của server
Chỗ cần xem
Số đối tượng (vật phẩm rơi trên đất, vật triệu hồi, timer) và thời gian tick theo từng zone và server, trong khoảng thời gian dài hơn chu kỳ bảo trì (vài tuần)
Đúng nếu
số đối tượng và thời gian tick bắt đầu thấp sau bảo trì, tăng mỗi ngày rồi rơi thẳng xuống mỗi lần bảo trì hoặc khởi động lại, lặp đi lặp lại, trong khi bộ nhớ vẫn dư
Loại trừ nếu
tick không đổi mà chỉ bộ nhớ tăng liên tục → rò rỉ bộ nhớ
Cách kiểm tra
Cần log và chỉ số của server, client game
Tìm hiểu thêm
Giống rò rỉ bộ nhớ ở chỗ càng chạy lâu càng tệ, nhưng khác ở chỗ bộ nhớ vẫn dư mà chỉ thời gian tick tăng. Nếu đồ thị số đối tượng có dạng răng cưa theo từng chu kỳ bảo trì thì là trường hợp này.

Nguồn

  1. Actor Ticking in Unreal Engine Epic Games
    Actor và component nếu không được đặt khoảng cách riêng sẽ tick mỗi frame một lần, và có thể tắt tick khi không cần
  2. AActor::SetLifeSpan Epic Games
    Đặt tuổi thọ (lifespan) cho actor thì actor tự bị hủy khi hết hạn

Nguyên nhân nên xem cùng

Cùng tầng: L9 Tiến trình game phía server

Nguyên nhân ở tầng khác gây cùng triệu chứng (Quay chậm)

Xem thẻ gốc có hình minh họa và thí nghiệm