Yanıtlar:
Neden komutu ps
ile 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"
ps aux | sort -nrk 3,3 | head -n 5
top
çalıştığından nasıl farklı olduğunu merak ediyorum .
top
işlem listesini okur ve sonucu herhangi bir başka işleme koymadan kendi başına gösterir
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, ps
tanımıyor --sort
, ancak -r
mevcut 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
bash
(x2 veya head
aynı zamanda) ps
...
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.
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)
Bence ps
aradığı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 ps
temel çözümlerden birini kullanın .
top -o cpu -n 5
aynı şeyi başarmanın bir yoludur. Kimse biliyor mu? Benim top
adresinden Müşteri farklıdır top
.
-o
ve -n
çıkmadan önce ekranı yenileme sayısını ayarlar.
top
grubum oldukça kısıtlayıcı olan bir parti moduna sahip görünmüyor. top
Diğer komutlara bir çeşit bağlantı yapılmalı . Biraz araştırma yapacağım.
top
bu öğleden sonra tarif edildiği gibi çalıştı. Şerefe.
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
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 c
Bir 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
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 k
aynıdır --sort
ve c
CPU kullanımı (diğer adı belirtir %cpu
ise 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.
Komut satırı aracının ps
kendi sıralama seçeneği vardır, bu yüzden tercih ederim:
$ ps -eo pcpu,args --sort=-%cpu | head
İstediğiniz sütunları ekleyebilirsiniz. ps
Man sayfası üzerinden başka hangi seçeneklerin mevcut olduğunu görün .
$ man ps
top
Mac 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
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
, cmd
ya dacommand
%cpu
: Bu argüman "##. #" Formatında işlemin cpu kullanım yüzdesini gösterir. Burada pcpu
da 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 pmem
da 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.=
-
+
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.