Ps `ile ilk beş işlemci tüketen işlemi göster


101

Ps ile ilk beş işlemci tüketen süreç nasıl gösterilir?

Yanıtlar:


95

Neden komutu psile kolayca yapabiliyorken kullanıyorsunuz top?

Kullanmanız gerekiyorsa ps, şunu deneyin:

ps aux | sort -nrk 3,3 | head -n 5

Sürekli güncellemeler ile gerçekten 'top'esq' olan bir şey istiyorsanız, saati kullanın

watch "ps aux | sort -nrk 3,3 | head -n 5"

3
ps aux | sıralama -k 3,3 | kuyruk -n 5 ;-)
PlanasB

1
ps aux başlığını atlamak için sayısal sıralamayı eklemek iyi olacaktır. ps aux | sort -nrk 3,3 | head -n 5
syss

1
Bu birçok, borulu veri işlem listesini baş geldiğinde zaten değişmiş olabilir, çünkü daha kaynak tüketen ve durumunu yarış da daha eğilimli süreçleri çoğaltılır
phuclv

Bu doğru @ LưuVĩnhPhúc ama bunun nasıl topçalıştığından nasıl farklı olduğunu merak ediyorum .
buzlu su

1
@icedwater topişlem listesini okur ve sonucu herhangi bir başka işleme koymadan kendi başına gösterir
phuclv

87

Doğru cevap :

ps --sort=-pcpu | head -n 6

Böylece, sıralama işlemine müdahale etmeden sütunları belirleyebilirsiniz.

Ör:

ps -Ao user,uid,comm,pid,pcpu,tty --sort=-pcpu | head -n 6

MAC OS X için not : Mac OS X'te, pstanımıyor --sort, ancak -rmevcut CPU kullanımına göre sıralamayı sunuyor . Böylece, Mac OS X için şunları kullanabilirsiniz:

ps -Ao user,uid,comm,pid,pcpu,tty -r | head -n 6

3
Bu doğru cevap. Teşekkürler Facundo. Diğerlerine sıralama ve boru kullanabileceğinizi açıklamaya çalışıyordum, ancak ps ayrıca sıralama için bir seçenekle birlikte gelmişti ve şimdi sizi de harika olanı kullandığınızı görüyorum.
Luis Alvarado,

2. komut daha yararlı görünüyor ... ama ilk sadece göründüğü gibi görünüyor bash(x2 veya headaynı zamanda) ps...
Wilf

3
@Wilf Birincisi, komutu kullanmadan cpu tüketimine göre nasıl sıralanacağını vurgulamak içindir sort, ikincisi ise sıralamayı engellemeden sütunların nasıl belirtileceğini gösterir. Bir şeyi açıklarken .. her zaman bir şeyi özlemek ve açıklamak her zaman daha iyidir.
Facundo Victor,

27

Gereksinimlerinize bağlı olarak bunu biraz daha okunabilir bulabilirsiniz:

ps -eo pcpu,pid,user,args --no-headers| sort -t. -nk1,2 -k4,4 -r |head -n 5

örnek çıktı:

 1.3     4 root     [ksoftirqd/0]
 1.1     9 root     [ksoftirqd/1]
 1.0 17606 nobody   /usr/sbin/gmetad
 1.0    13 root     [ksoftirqd/2]
 0.3 17401 nobody   /usr/sbin/gmond

(alanlar% CPU, PID, USER, COMMAND)


22

Bence psaradığın şey bu değil . Çıktısına baktınız mı top?

Eğer GNU-Top'unuz varsa, cpu kullanımına göre sıralanmış bir işlem listesi hazırlamak için seri modunu kullanmayı ve ilk 5 satırı almak için head / tail komutunu kullanmayı deneyin (ilk 8 başlıklardır):

top -b -n 1 | head -n 12  | tail -n 5

BSD'nin üst kısmı farklı görünüyor ve etkileşimli olmayan bir moda sahip değil, bu nedenle diğer pstemel çözümlerden birini kullanın .


1
OS X'te, top -o cpu -n 5aynı şeyi başarmanın bir yoludur. Kimse biliyor mu? Benim topadresinden Müşteri farklıdır top.
boehj

Farklı üste sahip olan sensin, böylece söyleyebilecek bir durumda olacaksın. Üstüm yok -ove -nçıkmadan önce ekranı yenileme sayısını ayarlar.
Caleb

Yeterince adil. Öğleden sonra bir Linux kasasına geçip bir göz atacağım. Benim topgrubum oldukça kısıtlayıcı olan bir parti moduna sahip görünmüyor. topDiğer komutlara bir çeşit bağlantı yapılmalı . Biraz araştırma yapacağım.
boehj

Cevabımdaki toplu iş modu anahtarından bahsettim, ancak benim için üstüme gerek yok çünkü etkileşimli bir oturum yerine bir borunun parçası olduğunu otomatik olarak algılıyor. Sadece onsuz pipoyu denedin mi?
Caleb

1
Yapacağım. GNU topbu öğleden sonra tarif edildiği gibi çalıştı. Şerefe.
boehj

6

Bunun için bulduğum en hızlı tek astar (not eklediği için not 6'ya bakınız):

ps aux k-pcpu | head -6

5

Mevcut ps sürümlerinin alan kodlarına göre (ps kılavuz sayfasında verilen) sıralama yeteneklerine sahip olduğunu unutmayın. İşlemci kullanımı için alan kodu "c" dir. --sort cBir ps komutunun sonunda kullanabilirsiniz .ps aux --sort c

Bu, listenin en altındaki en cpu kullanarak işlemi koyacaktır. Örneğin sıralamak için kullanılan alan koduna bir eksi ekleyerek listenin tersi sırasını değiştirirps aux --sort -c


4

Diğer değerli cevaplara bir nokta eklemek için, şunu tercih ederim:

ps auxk-c | head -6

Aynı zamanda güzel olan başlığı yazdırır.

Burada kaynıdır --sortve cCPU kullanımı (diğer adı belirtir %cpuise sıralama için) alanı -ters tür içindir.

Sen ayırarak daha belirteçleri eklemek olabilir ,, diğer olası belirteçleri şunlardır: %mem, args, bsdstart, pid, gid, uid... sen tam listesini bulabilirsiniz STANDART biçim belirteçleri adam sayfasının bölümüne. Örneğin:

 ps auxk -gid,-%mem | head -11

dahili olarak bellek kullanımına göre sıralanmış, en yüksek grup kimliğine sahip 10 işlem yazdırır.


3

Komut satırı aracının pskendi sıralama seçeneği vardır, bu yüzden tercih ederim:

$ ps -eo pcpu,args --sort=-%cpu | head

İstediğiniz sütunları ekleyebilirsiniz. psMan sayfası üzerinden başka hangi seçeneklerin mevcut olduğunu görün .

$ man ps

0

topMac OS X'te top -l numberOfSamples(GNU toplu iş moduna eşdeğer gibi) şeklinde bir günlük modu seçeneği vardır top. Bununla birlikte, en az iki örneğe sahip olmak gereklidir, çünkü "görüntülenen ilk örnek, her işlem için görüntülenen geçersiz bir% CPU'ya sahip olacaktır, çünkü örnekler arasındaki delta kullanılarak hesaplanır" ( man 1 top).

# examples
top -o cpu -l 2 -n 5 | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu -U $(logname) | tail -n 6

0

topCPU'nuzun ne kullandığını gösterecektir. Eğer kurduysanız, htopCPU'yu filtrelemek de dahil olmak üzere daha hassas kontrol elde etmenizi sağlar.


0

En iyi 5 işlemci alım sürecini görmenin en basit yolunun ,

ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5

İlk 5 bellek tüketen işlemi görmek ,

ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5

Nerede,

-e : Bu bayrak tüm işlemleri seçmek için kullanılır.

-o : Bu bayrak kullanıcı tanımlı olarak formatlamak için kullanılır.

pid : Pid'i göstermek için kullanılan bu argüman

comm: Bu argüman sadece komut ismini göstermek için kullanılır. Tam komut kullanımını elde etmek için args, cmdya dacommand

%cpu: Bu argüman "##. #" Formatında işlemin cpu kullanım yüzdesini gösterir. Burada pcpuda kullanılabilir.

%mem: Bu argüman, işlemin yerleşik set büyüklüğünün makinedeki fiziksel belleğe oranını yüzde olarak ifade eder. Burada pmemda kullanılabilir.

--sort: Sıralama düzenini belirtin. Sonra varsayılan seçeneği nerede işareti üstündeki en yüksek değeri sıralamak için kullanılır [n yani 0] artan sayısal düzeni listelemektir.=-+


-2

top -bn1 |sed -n '7,12'pçok güzel bir küçük astar olarak çalışır.
Her ne kadar ps'i --sort = X -o X, Y, Z ile kullanmayı tercih etsem de

ps kullanarak bir işlem VEYA kullanıcısı için farklı istatistikler elde edebilir ve daha sonra toplam VEYA bir boruyla awk için avg yapabilirsiniz.

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.