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

Libro blanco del lag en juegos › L7 SO del servidor (kernel)

CPU steal (máquinas virtuales) CPU steal time

ID de la causa so-steal · Responsable principal Infraestructura de servidores (Equipo de infraestructura) · También Externo (Externo)

Abrir la ficha interactiva con gráficos y simulaciones →

Mientras el servidor físico (hipervisor) cede por un momento el tiempo de CPU de la máquina virtual a otra máquina virtual (CPU steal), el servidor del juego se detiene.

Por qué Otra máquina virtual del mismo host usa mucha CPU → Efecto Nuestra máquina virtual pierde turnos de ejecución de varios ms a decenas de ms cada vez → En pantalla Picos de tiempo de tick sin causa aparente: tirones y congelamiento

Síntomas
Tirones, Congelamiento
Factores
Detención
A quién afecta
Todo el servidor
Cuándo
De vez en cuando, al azar
Responsable
Responsable principal Infraestructura de servidores (Equipo de infraestructura) · También Externo (Externo)
Tareas (Equipo de infraestructura)
Monitorear el indicador de steal (st de top y vmstat), usar núcleos u hosts dedicados, evitar las instancias de tipo ráfaga (burstable), que se ralentizan al agotar sus créditos de CPU, detener y volver a iniciar las instancias con steal alto sostenido para moverlas a otro host.
Tareas (Externo)
Informar al proveedor de nube de los hosts con steal alto sostenido.
En el gráfico
Picos aleatorios · %steal, tiempo de tick del servidor
Dónde mirar
%steal de mpstat -P ALL 1 en el mismo eje de tiempo que el tiempo de tick del servidor
Se confirma si
%steal sube a la vez que los picos de tick y baja al detener la instancia y volver a iniciarla en otro host
Se descarta si
Si %steal está cerca de 0 y aun así hay picos de tick, la causa está dentro del servidor del juego (“Pausa stop-the-world del GC en el servidor”, “Contención de locks”). En contenedores: “Throttling de CPU en contenedores (cuota de CFS)”
Se verifica con
Con herramientas de infraestructura (no hace falta código del juego)

Fuentes

  1. proc_stat(5) — Linux manual page Linux man-pages
    steal: tiempo que se pierde en un entorno virtualizado mientras se ejecutan otros sistemas operativos
  2. Standard mode for burstable performance instances AWS
    Las instancias de tipo ráfaga superan su rendimiento base gastando créditos y, cuando se agotan, el uso de CPU baja al nivel base
  3. How EC2 instance stop and start works AWS
    Al detener e iniciar una instancia, en la mayoría de los casos pasa a un host nuevo
  4. mpstat(1) — Linux manual page sysstat
    %steal: porcentaje de tiempo que esta CPU virtual tuvo que esperar mientras el hipervisor atendía a otra CPU virtual

Ver también

Misma capa: L7 SO del servidor (kernel)

Causas de otras capas con el mismo síntoma (Tirones)

Ver la ficha interactiva con gráficos y simulaciones