vous pouvez utiliser ps
.
par exemple, avoir un processus python avec deux threads occupés sur un processeur double cœur:
$ 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 est l'identifiant du processeur auquel le thread est actuellement affecté)
vous voyez que les threads fonctionnent sur le même cœur de processeur (à cause de GIL)
exécutant le même script python en jython, nous voyons que le script utilise les deux cœurs (et il existe de nombreux autres services ou autres threads, qui sont presque inactifs):
$ 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
vous pouvez traiter la sortie et calculer le CPU total pour chaque cœur de CPU.
Malheureusement, cette approche ne semble pas être fiable à 100%, parfois je vois que dans le premier cas, les deux threads de travail sont signalés comme étant séparés de chaque cœur de processeur, ou dans ce dernier cas, les deux threads sont signalés comme étant sur le même noyau ..
I
pour basculer en mode Irix (par opposition au mode Solaris ). Quandon
, le pourcentage affiché dans la liste des processus est relatif à un thread CPU . Quandoff
, ledit pourcentage est affiché par rapport à la capacité globale du processeur (c'est-à-dire TOUS les threads - c'est-à-dire tous les cœurs).