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
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
proc_stat(5) — Linux manual pageLinux 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