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

Sách trắng lag game › L10 Bộ nhớ

Cache miss CPU cache misses

ID nguyên nhân mem-cache-miss · 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 →

Khi dữ liệu nằm rải rác khắp bộ nhớ, lần nào CPU cũng phải đi tới tận RAM vốn chậm hơn và chờ.

Vì sao Đối tượng nằm rải rác, nối với nhau bằng con trỏ, và bị truy cập không theo thứ tự → Dẫn đến Dữ liệu không có trong cache CPU nên lần nào cũng phải đọc từ RAM (chậm hơn khoảng 100 lần) → Trên màn hình Cùng một việc mà chi phí mỗi tick tăng gấp mấy lần, nặng thì quay chậm

Triệu chứng
Quay chậm
Yếu tố
Ngưng trệ
Ai gặp phải
Cả server
Khi nào
Luôn luôn, Khi đông người
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)
Xếp liền nhau những dữ liệu hay được dùng cùng nhau (thiết kế hướng dữ liệu, data-oriented design).
Trên đồ thị
Luôn cao ngay từ đầu · Thời gian xử lý tick, mức sử dụng CPU
Chỗ cần xem
Chạy perf stat -d -p PID trên tiến trình server game để đo số lệnh mỗi chu kỳ (insn per cycle) và cache miss L1, LLC, rồi xem cùng thời gian xử lý tick và mức sử dụng CPU
Đúng nếu
CPU bận liên tục mà insn per cycle thấp, LLC miss nhiều. Nếu ở bản build đã đổi cách bố trí dữ liệu, cùng số người mà thời gian xử lý tick giảm mạnh thì có thể khẳng định
Loại trừ nếu
mức sử dụng CPU thấp mà tick vẫn chậm → nguyên nhân chờ bên ngoài CPU như lock, chờ I/O
Cách kiểm tra
Kiểm tra bằng công cụ hạ tầng (không cần code game)

Nguồn

  1. Designs, Lessons and Advice from Building Large Distributed Systems (LADIS 2009 keynote) Google
    Cache L1 mất 0,5 ns, cache L2 mất 7 ns, bộ nhớ chính mất 100 ns (số liệu năm 2009): đi tới RAM thì chậm hơn cache một đến hai bậc độ lớn
  2. perf-stat(1) — Linux manual page perf
    -p đếm sự kiện phần cứng của tiến trình đang chạy và hiển thị insn per cycle, -d bổ sung các sự kiện cache dữ liệu L1 và LLC

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

Cùng tầng: L10 Bộ nhớ

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