En la página de Wikipedia para el tiempo de CPU , dice
El tiempo de CPU se mide en tics de reloj o segundos. A menudo, es útil medir el tiempo de la CPU como un porcentaje de la capacidad de la CPU, lo que se denomina uso de la CPU.
No entiendo cómo una duración de tiempo puede ser reemplazada por un porcentaje. Cuando miro top
, ¿no %CPU
me dice que MATLAB
está usando 2.17 de mis núcleos?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18118 jasl 20 0 9248400 261528 78676 S 217.2 0.1 8:14.75 MATLAB
Pregunta
Para comprender mejor qué es el uso de la CPU, ¿cómo calculo yo mismo el uso de la CPU?
linux
performance
central-processing-unit
cpu-usage
Jasmine Lognnes
fuente
fuente
1
).Respuestas:
El tiempo de CPU se asigna en segmentos de tiempo discretos (ticks). Para un cierto número de segmentos de tiempo, la CPU está ocupada, otras veces no lo está (lo que está representado por el proceso inactivo). En la imagen a continuación, la CPU está ocupada por 6 de los 10 segmentos de CPU. 6/10 = .60 = 60% del tiempo ocupado (y, por lo tanto, habría un 40% de tiempo inactivo).
Un porcentaje se define como "un número o tasa que se expresa como un cierto número de partes de algo dividido en 100 partes". Entonces, en este caso, esas partes son segmentos de tiempo discretos y algo son segmentos de tiempo ocupado frente a segmentos de tiempo inactivo: la tasa de segmentos de tiempo ocupado a inactivo.
Dado que las CPU funcionan en GHz (miles de millones de ciclos por segundo). El sistema operativo corta ese tiempo en unidades más pequeñas llamadas garrapatas. No son realmente 1/10 de segundo. La tasa de tics en Windows es de 10 millones de tics en un segundo y en Linux es
sysconf(_SC_CLK_TCK)
(generalmente 100 tics por segundo).En algo así
top
, los ciclos de CPU ocupados se dividen en porcentajes de cosas como el tiempo del usuario y el tiempo del sistema. Entop
Linux y perfmon en Windows, a menudo obtendrá una pantalla que supera el 100%, eso es porque el total es 100% * the_number_of_cpu_cores.En un sistema operativo, es tarea del planificador asignar estos preciosos sectores a los procesos, por lo que el planificador es el que informa esto.
fuente
El tiempo de CPU es el tiempo que el proceso usa la CPU; la conversión a un porcentaje se realiza dividiendo por la cantidad de tiempo real que ha pasado.
Entonces, si tengo un proceso que usa 1 segundo de tiempo de CPU durante un período de 2 segundos, está usando el 50% de una CPU.
En el caso de su proceso MATLAB, el 217% indica que ha usado 2.17 segundos de tiempo de CPU por segundo durante el último intervalo de muestra, efectivamente, monopolizando 2 núcleos de CPU y tomando algo de un tercio.
fuente