bạn có thể sử dụng ps
.
ví dụ: có quy trình python với hai luồng bận trên CPU lõi kép:
$ 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 là id CPU mà luồng hiện được gán cho)
bạn thấy rằng các luồng đang chạy trên cùng một lõi cpu (vì GIL)
chạy cùng một tập lệnh python trong jython, chúng tôi thấy rằng tập lệnh đang sử dụng cả hai lõi (và có nhiều dịch vụ khác hoặc bất kỳ luồng nào, hầu như không hoạt động):
$ 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
bạn có thể xử lý đầu ra và tính toán tổng CPU cho mỗi lõi CPU.
Thật không may, cách tiếp cận này dường như không đáng tin cậy 100%, đôi khi tôi thấy rằng trong trường hợp đầu tiên, hai luồng làm việc được báo cáo là được tách riêng cho mỗi lõi CPU hoặc trong trường hợp sau, hai luồng được báo cáo là đang bật cùng một lõi ..
I
để chuyển đổi chế độ Irix (trái ngược với chế độ Solaris ). Khi nàoon
, tỷ lệ phần trăm được hiển thị trong danh sách quy trình có liên quan đến luồng CPU . Khi nàooff
, tỷ lệ phần trăm nói trên được hiển thị tương đối với dung lượng tổng thể của CPU (tức là TẤT CẢ các luồng - hay còn gọi là tất cả các lõi).