İş parçacığı başına cpu istatistikleri alma


17

Belirli bir uygulamada her iş parçacığı için cpu - tam olarak cpu% ve bekleyin% - mevcut kullanımı ile ilgileniyorum. Bu bilgiyi bir yerden almak mümkün mü?

topGerçek iş parçacığı (pid olanlar) başına bilgi bölebilir biliyorum , ama her biri için sistem / kullanıcı / bekleme cpu kullanımı bölünmüş göstermez. Ayrıca bu bilgileri günlüğe kaydetmek için bir yol istiyorum. Bunu yapabilen herhangi bir uygulama (veya API) biliyor musunuz?

Yanıtlar:


4

İçine bakmak istiyorum SystemTap'ı . Bu araç kesinlikle size ne istediğinizi verecektir. Profilleme dişlerinin bu örneği vardır ; İstediğiniz her şeye sahip olup olmadığını bilmiyorum, ancak bunu yapmak için değiştirebilirsiniz.



12

Komutla elde edebileceğiniz iş parçacığı başına cpu kullanım yüzdesi ps:

 ps -emo %cpu,pid,user,args

Hesaplanma şekli şu şekilde açıklanmaktadır ps manpage:

Şu anda, kullanılan CPU süresinin, yüzde olarak ifade edilen, işlemin çalıştığı süreye (çalışma zamanı / gerçek zamanlı oran) bölünmesiyle elde edilir.


Hem cpu zamanı hem de io-wait zamanı ile gerçekten ilgileniyorum. ps ikincisini maalesef halledemiyor.
viraptor

kendini not: -e -C java yerine ve java app iplik Ids için spid tarafından pid
kellogs

2
kendine büyük not: ps -To pcpu,tid -C java | sort -r -k1 | morebir java uygulamasında domuz konuları için. ps --sort=pcpuhiçbir şey başarmaz; daha iyi sıralama bölümü için kabuk güvenmek.
kellogs

Çok faydalı @kellogs, teşekkürler. Ben eklemek -nveya -gsıralamak istiyorum, böylece "10", örneğin "2" yukarıda görünür.
EM0

0

Belki htop'a bir göz atın, onunla çok şey yapılandırabilirsiniz.


ne yazık ki belirli bir iş parçacığı için cpu kullanıcı / sistem / bekleme süresi bölünemez - sadece tüm makine için
viraptor

Evet, ama bunu nasıl yapabilirim?
rmobis

0

Sar denedin mi? Pid düzeyinde bile çok fazla bilgi alabilir.



0

Bunu, bu şeylere bakmak için süslü araçlara sahip olmadığımız gömülü bir sistemde tökezledim.

Bunun için cpuacct cgroupher iş parçacığını kendi klasörüne yerleştirdim. Bu şekilde kullanımlarını ölçebildim.

Hiyerarşi şöyle görünüyordu:

my-app.service
|-tid1
|-tid2
|-tid3

Sonra değiştirdim

my-app.service
|-dir1
|  -tid1
|-dir2
|  -tid2
|-dir3
|  -tid3
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.