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 ..
Ipara 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).