İşlem başına CPU kullanımını nasıl kaydederim?


18

Linode'da tuhaf davranışlardan geçen bir kutum var. Arada sırada CPU ve disk G / Ç% 100'e vuracak ve sunucu yanıt vermiyor ve önyüklenmesi gerekiyor. Neler olup bittiğini daha iyi araştırmak istiyorum, ancak tüm bu CPU ve G / Ç'den kimin sorumlu olduğunu nasıl bulacağımı bilmiyorum. Gentoo 2.6.18 kullanıyorum.

Yanıtlar:


20

Böyle bir şey yapmaya çalışabilirsiniz:

while true; do ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10 >> logfile.txt; printf "\n" >> logfile.txt; sleep 3; done

CPU kullanımı açısından en iyi on işlemi gösterir. "Kafa -10" daki 10'u farklı bir sayıya değiştirerek gösterilen işlem sayısını ve "uyku 3" deki 3'ü değiştirerek veya "uyku 3" bölümünü tamamen çıkararak ne sıklıkta güncelleneceğini değiştirebilirsiniz.


5
Orada bir tür uyku olduğundan emin olun, aksi takdirde kabuk işleminizin her zaman ilk 10'da olma şansı vardır. :)
jedberg

Ben sort -nrsayısal olarak sıralamak için daha iyi olacağını düşünüyorum (en azından benim ubuntu / debian boxen üzerinde)
sehe

2
BTW, yüksek yük zirveleri (sonuçta hayatının noktası olan) sırasında faydalı kalması için bu sürece en yüksek önceliği vermelisiniz.
spacediver

12

İstediğiniz hemen hemen her şeyin ikili bir günlüğünü yazacak ve sonra günün zaman dilimlerini geçmek için gui gibi bir üst kullanabilirsiniz (varsayılan, verileri her 5 dakikada bir almaktır). http://www.atcomputing.nl/Tools/atop/


6

Müninin , kutunuzun faaliyetleri hakkında bilgi almanıza yardımcı olacak mal izleme araçlarından biri olduğunu düşünüyorum . Ayrıca, bu tür kullanım için sar , iostat, ps, top gibi bazı komut satırı aracı vardır .


5

Diğer yanıtlar size yalnızca şu anda neler olup bittiğine nasıl bakabileceğinizi gösterdi, bu da sistemin yeniden başlatılması durumunda yardımcı olmuyor.

Bu bilgilerin gelecek nesiller için kaydedilmesini (veya faturalandırmanın veya başka herhangi bir kullanımın da) kaydedilmesini istiyorsanız, istediğiniz şey muhasebe işlemidir.

İşte NASIL buldum, ama dürüst olacağım - süreç muhasebesini kullandığımdan bu yana on yıl geçti.

http://tldp.org/HOWTO/Process-Accounting/


2

Shawn'ın gerçek zamanlıya yakın izleme için çözümüne daha kullanıcı dostu bir yaklaşım:

while true; do clear; ps -eo pcpu,pmem,pid,user,args --sort=-pcpu c|head -20; sleep 1; done

Bu, her 1 saniyede bir yenilenecek en iyi 20 işlemin statik bir görünümünü sağlayacaktır. Ps komutundaki "c" seçeneği, tüm args komutu yerine işlem yürütülebilir adını yazdırır. Bunun yerine tüm komut bilgilerine ihtiyacınız varsa bu seçeneği atlayabilirsiniz. % bellek kullanımı sütunu da eklendi.


1

Gentoo'nun wel olarak "top" komutu yok mu?

machine:~/# top

hangi programların en fazla yüke neden olduğunu gösteren çalışma istatistiklerini vermelidir.


Evet biliyorum, ama daha sonra tarihini görebilmem için kayıt yaptırmak istiyorum. CPU yükseldiğinde, makine yanıt vermiyor, bu yüzden oturum açamıyorum ve topsuçlu kim olduğunu görmek için koşamıyorum. Daha sonra tekrar kontrol etmek ve hangi işlemin yapıldığını görmek istiyorum.
Helder S Ribeiro
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.