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

Sách trắng lag game › L7 OS server (kernel)

CPU steal (máy ảo) CPU steal time

ID nguyên nhân so-steal · Phụ trách chính Hạ tầng server (Đội hạ tầng) · Phối hợp Bên ngoài (Bên ngoài)

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

Trong lúc server vật lý (hypervisor) tạm chuyển thời gian CPU của một máy ảo cho máy ảo khác (CPU steal), server game bị dừng.

Vì sao Máy ảo khác trên cùng host dùng nhiều CPU → Dẫn đến Máy ảo chạy server game mất lượt dùng CPU, mỗi lần vài ms đến vài chục ms → Trên màn hình Thời gian tick vọt lên không rõ lý do, gây giật khựng và đứng hình

Triệu chứng
Giật khựng, Đứng hình
Yếu tố
Ngưng trệ
Ai gặp phải
Cả server
Khi nào
Thỉnh thoảng bất chợt
Phụ trách
Phụ trách chính Hạ tầng server (Đội hạ tầng) · Phối hợp Bên ngoài (Bên ngoài)
Việc cần làm (Đội hạ tầng)
Giám sát chỉ số steal (st trong top và vmstat), dùng core hoặc host riêng, tránh loại instance burstable (bị chậm khi hết CPU credit), với instance có steal cao kéo dài thì dừng rồi khởi động lại để chuyển sang host khác.
Việc cần làm (Bên ngoài)
Báo cho nhà cung cấp cloud những host có steal cao kéo dài.
Trên đồ thị
Thỉnh thoảng vọt lên bất chợt · %steal, thời gian tick của server
Chỗ cần xem
%steal từ mpstat -P ALL 1, đặt trên cùng trục thời gian với thời gian tick của server
Đúng nếu
%steal vọt lên cùng lúc với tick, và giảm sau khi dừng rồi khởi động lại để chuyển sang host khác
Loại trừ nếu
%steal gần 0 nhưng tick vẫn vọt lên → nguyên nhân nằm bên trong server game (“GC dừng toàn bộ server”, “Tranh chấp lock”). Nếu chạy trong container → “CPU throttling trong container (CFS quota)”
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. proc_stat(5) — Linux manual page Linux man-pages
    steal: thời gian bị lấy mất vì hệ điều hành khác đang chạy trong môi trường ảo hóa
  2. Standard mode for burstable performance instances AWS
    Instance burstable dùng credit để chạy vượt hiệu năng cơ sở; khi hết credit, mức sử dụng CPU bị hạ về mức cơ sở
  3. How EC2 instance stop and start works AWS
    Dừng rồi khởi động lại instance thì phần lớn trường hợp instance được chuyển sang host mới
  4. mpstat(1) — Linux manual page sysstat
    %steal: tỷ lệ thời gian CPU ảo này buộc phải chờ trong lúc hypervisor chạy CPU ảo khác

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

Cùng tầng: L7 OS server (kernel)

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