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

Sách trắng lag game › L2 OS và thiết bị phía client

Tiến trình chạy nền chiếm giữ CPU Background CPU contention

ID nguyên nhân co-background · Phụ trách chính Bên ngoài (Bên ngoài) · Phối hợp Phát triển client (Đội phát triển game)

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

Khi việc quét virus, Windows Update, phần mềm livestream hay video trên trình duyệt chiếm các core, game thread không được cấp CPU và phải chờ.

Vì sao Chương trình khác chiếm giữ core CPU trong thời gian dài → Dẫn đến Game thread phải chờ được lập lịch → Trên màn hình Khung hình bị trễ, việc xử lý gói tin đã nhận cũng trễ theo

Triệu chứng
Giật khựng, Tua nhanh
Yếu tố
Ngưng trệ
Ai gặp phải
Chỉ mình tôi
Khi nào
Thỉnh thoảng bất chợt, Theo chu kỳ đều
Phụ trách
Phụ trách chính Bên ngoài (Bên ngoài) · Phối hợp Phát triển client (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Điều chỉnh mức ưu tiên của game thread, ghi kèm mức dùng CPU của toàn PC vào log lúc xảy ra giật để phân biệt có phải do chương trình khác hay không.
Việc cần làm (Bên ngoài)
Hướng dẫn người chơi bật Game Mode của Windows, tắt các chương trình không cần thiết khi chơi (quét virus, Windows Update, phần mềm livestream, video trên trình duyệt).
Con số tham khảo
Windows thường giao core cho mỗi thread vài ms đến vài chục ms một lần. Chỉ cần bị lỡ một lượt lập lịch là mất một khung hình.
Trên đồ thị
Thỉnh thoảng vọt lên bất chợt · Mức dùng CPU của toàn PC, frame time
Chỗ cần xem
Ghi cột CPU ở tab Processes của Task Manager và Processor Information(_Total)\% Processor Time trong Performance Monitor cùng với frame time của PresentMon. Nghi phần mềm diệt virus thì ghi bằng New-MpPerformanceRecording rồi dùng Get-MpPerformanceReport xem file, tiến trình nào tốn nhiều thời gian quét
Đúng nếu
đúng lúc giật, mức dùng CPU của chương trình khác (quét virus, cập nhật, phần mềm livestream) vọt lên, hoặc file trong thư mục game nằm trong nhóm tốn thời gian quét nhiều nhất. Tắt chương trình đó hoặc đưa vào danh sách loại trừ thì hết
Loại trừ nếu
mức dùng CPU thấp mà cả màn hình vẫn khựng và tiếng bị rè → “Tiết kiệm điện NIC và lỗi driver” (độ trễ DPC)
Cách kiểm tra
Kiểm tra ở môi trường phía người chơi
Tìm hiểu thêm
Windows ưu tiên hơn một chút cho chương trình ở cửa sổ đang hiện phía trước (foreground), nhưng khi số việc cần chạy nhiều hơn số core thì game vẫn phải chờ. Với phần mềm diệt virus, tính năng “giám sát thời gian thực” còn hay chen vào hơn cả việc dùng CPU. Nó quét mỗi lần game mở file, nên những lần dừng lúc đọc asset kéo dài hơn.

Nguồn

  1. Multitasking Microsoft
    Windows cấp cho mỗi thread một time slice, dùng hết thì chuyển sang thread tiếp theo; time slice khoảng 20 ms (tùy OS và CPU)
  2. Priority Boosts Microsoft
    Tiến trình của cửa sổ đang ở phía trước (foreground) được nâng mức ưu tiên lên bằng hoặc cao hơn tiến trình chạy nền
  3. About regular quick and full scans with Microsoft Defender Antivirus Microsoft
    Tính năng bảo vệ thời gian thực quét mỗi lần mở, đóng file và mỗi lần mở thư mục
  4. Network-Related Performance Counters Microsoft
    Processor Information: counter % Processor Time
  5. Performance analyzer for Microsoft Defender Antivirus Microsoft
    Ghi bằng New-MpPerformanceRecording và dùng Get-MpPerformanceReport xem các file, đường dẫn, tiến trình ảnh hưởng nhiều nhất tới thời gian quét
  6. PresentMon Capture Application (README-CaptureApplication.md) Intel
    Ghi lại thời gian từng khung hình bằng FrameTime (thời gian CPU giữa hai khung hình)

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

Cùng tầng: L2 OS và thiết bị phía client

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

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