Anda bisa menggunakan ps
.
misalnya memiliki proses python dengan dua utas sibuk pada CPU inti ganda:
$ 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 adalah id CPU tempat utas saat ini ditetapkan)
Anda melihat bahwa utas berjalan pada inti cpu yang sama (karena GIL)
menjalankan skrip python yang sama di jython, kita lihat, bahwa skrip menggunakan kedua inti (dan ada banyak layanan lain atau utas apa pun, yang hampir tidak aktif):
$ 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
Anda dapat memproses output dan menghitung total CPU untuk setiap inti CPU.
Sayangnya, pendekatan ini tampaknya tidak 100% dapat diandalkan, terkadang saya melihat bahwa dalam kasus pertama, dua utas kerja dilaporkan dipisahkan ke setiap inti CPU, atau dalam kasus terakhir, dua utas dilaporkan berada di inti yang sama ..
I
untuk beralih mode Irix (sebagai lawan dari mode Solaris ). Jikaon
, persentase yang ditampilkan dalam daftar proses relatif terhadap utas CPU . Ketikaoff
, persentase tersebut ditampilkan relatif terhadap keseluruhan kapasitas CPU (yaitu SEMUA utas - alias semua inti).