De dónde sale el número
%st en top es la parte del tiempo en que su CPU virtual era ejecutable pero no se programaba en un núcleo físico, según informa el hipervisor. El contador existe porque un invitado no puede distinguir de otro modo entre un núcleo lento y un núcleo que nunca recibió.
top -bn1 | head -3
vmstat 1 5
mpstat -P ALL 1 5El valor crudo, para quien quiera graficarlo por su cuenta, es el octavo campo de la línea cpu en /proc/stat, contado en USER_HZ:
grep -w cpu /proc/statPor qué aquí es cero
Los núcleos se asignan una vez. Una vCPU de su instancia está fijada a un núcleo físico que no está en la asignación de nadie más, en un host sin sobreventa, así que no hay cola en la que esperar. Ni una cifra baja, ni un saldo de crédito que se agota al cuarto día del mes: nada que robar.
Si el suyo no es cero, es un defecto y queremos el ticket. Incluya una ejecución de mpstat -P ALL 5 12 y el ID de la instancia.
Por qué las cifras de otros no son cero
Los planes burstable se construyen sobre el tiempo robado. Varios invitados comparten un núcleo, cada uno tiene un saldo de crédito, y cuando el saldo se vacía el programador entrega el núcleo a otro. Vendido con honestidad, es un producto legítimo para cargas de trabajo inactivas. No es este. Eliminamos el nivel barato en 2021 y la sobreventa se fue con él.
Qué comprobar cuando la máquina se siente lenta de todos modos
El robo es lo primero que todos miran y rara vez es la respuesta. En orden de probabilidad:
Cola de ejecución
vmstat 1 5Más hilos ejecutables que núcleos, en la columna r, significa que simplemente se quedó sin CPU. Ningún ajuste inventa otro núcleo.
Disco
iostat -x 1 5%iowait subiendo mientras el tiempo de usuario se mantiene bajo apunta al almacenamiento, no al procesador.
Su propio cgroup
Este es el que atrapa a la gente. Un contenedor con una cuota de CPU se siente exactamente como tiempo robado desde dentro del proceso y reporta robo cero, porque el límite es suyo y no nuestro:
cat /sys/fs/cgroup/cpu.statnr_throttled y throttled_usec subiendo significa que la cuota establecida por su propio orquestador es el techo. Súbala o elimínela.
Frecuencia
Los relojes boost se mueven con la carga de trabajo, y una prueba de un solo hilo es la forma honesta de ver dónde está realmente:
apt install -y sysbench
sysbench cpu --cpu-max-prime=20000 --threads=1 runCompare la cifra de eventos por segundo contra otra instancia en lugar de contra un número de un blog de alguien en 2019.
Columnas invitado y anidadas
%guest y %gnice solo son distintos de cero cuando está ejecutando máquinas virtuales dentro de su instancia. La virtualización anidada está disponible en los planes EPYC más grandes y en metal desnudo; verifique el dispositivo antes de diseñar en torno a él:
ls -l /dev/kvmLa versión corta
r alto con tiempo de usuario cerca del cien por ciento es la CPU. %iowait alto es el disco. cpu.stat contando estrangulamientos es su propia cuota. Robo distinto de cero somos nosotros, y no debería ocurrir.