puede utilizar ps
.
por ejemplo, tener un proceso de Python con dos subprocesos ocupados en la CPU de doble núcleo:
$ ps -p 29492 -L -o pid,tid,psr,pcpu
PID TID PSR %CPU
29492 29492 1 0.0
29492 29493 1 48.7
29492 29494 1 51.9
(PSR es el ID de CPU al que está asignado el hilo)
ve que los subprocesos se ejecutan en el mismo núcleo de la CPU (debido a GIL)
ejecutando el mismo script de Python en jython, vemos que el script está utilizando ambos núcleos (y hay muchos otros servicios o cualquier subproceso, que están casi inactivos):
$ ps -p 28671 -L -o pid,tid,psr,pcpu
PID TID PSR %CPU
28671 28671 1 0.0
28671 28672 0 4.4
28671 28673 0 0.6
28671 28674 0 0.5
28671 28675 0 2.3
28671 28676 0 0.0
28671 28677 1 0.0
28671 28678 1 0.0
28671 28679 0 4.6
28671 28680 0 4.4
28671 28681 1 0.0
28671 28682 1 0.0
28671 28721 1 0.0
28671 28729 0 88.6
28671 28730 1 88.5
puede procesar la salida y calcular la CPU total para cada núcleo de CPU.
Desafortunadamente, este enfoque no parece ser 100% confiable, a veces veo que en el primer caso, se informa que los dos subprocesos de trabajo están separados para cada núcleo de la CPU, o en el último caso, se informa que los dos subprocesos están en el mismo núcleo ..
I
para alternar el modo Irix (a diferencia del modo Solaris ). Cuandoon
, el porcentaje que se muestra en la lista de procesos es relativo a un subproceso de la CPU . Cuandooff
, dicho porcentaje se muestra en relación con la capacidad total de la CPU (es decir, TODOS los subprocesos , también conocidos como todos los núcleos).