Her işlem iş parçacığı için% CPU almam gerekiyor.Her iş parçacığı için CPU kullanımı
Yani, basit komut dosyası oluşturmak:
İşteimport psutil
from psutil import Process
p = psutil.Process(4499)
treads_list = p.get_threads()
for i in treads_list:
o = i[0]
th = psutil.Process(o)
cpu_perc = th.get_cpu_percent(interval=1)
print('PID %s use %% CPU = %s' % (o, cpu_perc))
TOP bu süreç için nasıl göründüğünü geçerli:
4942 teamcity 20 0 3288m 831m 3124 R 33.3 10.6 10303:37 java
32700 teamcity 20 0 3288m 831m 3124 S 5.9 10.6 18:49.99 java
5824 teamcity 20 0 3288m 831m 3124 S 5.9 10.6 1:57.90 java
4621 teamcity 20 0 3288m 831m 3124 S 3.0 10.6 1834:09 java
4622 teamcity 20 0 3288m 831m 3124 S 2.6 10.6 1844:15 java
konu 2,6-5,9% CPU kullanın ve ebeveyn PID - 33.3 kullanın.
Ama - Burada komut dosyasının sonucudur:
# ./psutil_threads.py
PID 10231 use % CPU = 60.9
PID 10681 use % CPU = 75.3
PID 11371 use % CPU = 69.9
PID 11860 use % CPU = 85.9
PID 12977 use % CPU = 56.0
PID 14114 use % CPU = 88.8
Burada
eksik ne ... Her iş parçacığı 'yemek' 56-88% CPU benziyor?
Bilgisayarda kaç tane çekirdek var? – dano
Ayrıca, komut dosyasının sonuçlarında ortaya çıkan pitler, "top" dan gelen referanslarla eşleşmiyor. Farklı çalışmalardan günlükleri gösteriyor musunuz? – dano
Çok çekirdekli bir makine kullanıyor musunuz? Araçlar çok çekirdekli mimariler için CPU% sunmak için farklı yaklaşımlar var; bazıları% 100'ün tüm sistemde tam yükte olduğunu ve diğerlerinin% 100'ün yalnızca bir çekirdek olduğunu düşünür, bu yüzden% 100'ün üzerinde bir işlem veya iş parçacığına sahip olabilirsiniz (bkz. [bu örnek] (http://s24.postimg) .org/c4he1p9et/resim.png)). – jdehesa