En yüksek yüke sahip işlemi nasıl bulurum?


10

Zaman ortalamasının 25'in üzerine çıkan bir yük ortalaması olan tek çekirdekli bir VPS'im var. Buna ulaştığında, dayanılmaz bir şekilde yavaşlar ve hatta dashdaha hızlı olan ve daha az RAM kullanan komutların bile çalışması bashbiraz zaman alır. Hangi yükün yüksek yüke neden olduğunu nasıl izleyebilirim?


2
sudo apt install htopsize bu amaç için kullanışlı bir metin modu aracı sunar (standarttan daha kullanıcı dostu top). Ama topküçük bir ayak izi istiyorsanız iyidir.
sudodus

2
Yükleme kuyruğu uzunluğu, kaç işlemin CPU kullanmaya hazır olduğunu gösterir. Bu, soruna neden olan tek bir işlem olmayabilir.
Thorbjørn Ravn Andersen

Yanıtlar:


16

Yükleyebilirsiniz htop. İyi bir şey htop, CPU başına kullanımınızın yanı sıra, belleğinizin ve takas kullanımınızın en üstte anlamlı bir metin grafiğinin gösterilmesidir.

Yüklemek için htop:

sudo apt-get install htop

Başlat:

htop

resim açıklamasını buraya girin

F6İşlemleri sıralamak için düğmesine basın , ardından navigasyon tuşunu kullanarak seçebilir PERCENT_CPUve enter tuşuna basabilirsiniz.

resim açıklamasını buraya girin

Veya şu şekilde kullanabilirsiniz top( kaynak ):

top -b -n 1 | head -n 12

2
Kısayol olarak, Pişlemci kullanımına, Mbelleğe veya Tzamana göre sıralamak ve tağaç düzenine dönmek için kullanabilirsiniz.
deltab

İlginçtir, htopbazı temel fare desteği vardır. Sütunları tıklarsanız, bu sütunları da sıralamanıza izin verir (eğer yanılmıyorsam). Farenizle çalışan başka işlemler de vardır.
Ismael Miguel

11

Aşağıdakiler yalnızca Unix'ten çalınmıştır.SE : CPU kullanımı% 60'tan fazla ise maksimum CPU kullanımı gerektiren işlemi bulun? tabii ki bu soruya uyarlanmış.

işlemleri belirli CPU kullanımına göre listeleme

ps ahux --sort=-c | awk '{if($3>0.0)printf"%s %6d %s\n",$3,$2,$11}'

Bu, CPU kullanımı >0.0% olan işlemlerin bir listesini verir , bu değeri ihtiyaçlarınıza göre değiştirebilirsiniz, örn >50.0. Her satır yüzde olarak CPU kullanımını, PID'yi ve işlem dosyasını içerir.

İşlemleri en çok CPU kullanan listeler

ps ahux --sort=-c | awk 'NR<=5{printf"%s %6d %s\n",$3,$2,$11}'

Bu, NR<=5şu anda en fazla CPU yüküne neden olan ilk 5 ( ) işlemi gösterir .


1

Dün okuyordum awkve diğer iki cevapla oynadım. İşte sonuç:

  • Yalnızca aşağıdakileri kullanarak en yüksek CPU kullanımına sahip işlemi alın ps aux:

    ps auxh | awk -v max=0 '{if($3>max){CPU=$3; PID=$2; NAME=$11; max=$3}} END{printf "%5s %6d %s\n",CPU,PID,NAME}'
    
  • Kullanarak en yüksek CPU kullanımına sahip üç işlemi elde edin top:

    top -b -n 1 | awk 'NR>7 && NR<11 {printf "top: %5s %6d %s %s\n",$9,$1,$12,$13}'
    
  • Kullanarak en yüksek CPU kullanımına sahip üç işlemi elde edin ps aux:

    ps auxh --sort=-c | awk 'NR<=3 {printf "ps:  %5s %6d %s\n",$3,$2,$11}'
    

Son iki komutu aynı anda ( <command>; wait; <command>ve ile <command> & <command> &) çalıştırmayı denedim , ancak sonra bunun mümkün olmadığını fark ettim :)


Referanslar:


Sonuncusu işlemi en çok CPU kullanımı ile göstermez, ancak ikincisi ile başlar, muhtemelen NR>=2orada demek istediniz - çıkıyor , başlık satırını atlayan psseçeneği sunuyor h, güncellenmiş cevabımı gör.
tatlı

@ tatlı, haklısın, daha önce öyleydi NR>=2, ama NR>1kısa :) Cevabı güncelledim.
pa4080

1

topKomutu kullan

top- Linux işlemlerini görüntüleme

Üstteki program, çalışan bir sistemin dinamik gerçek zamanlı görünümünü sağlar. Sistem özeti bilgilerinin yanı sıra Linux çekirdeği tarafından yönetilmekte olan işlemlerin veya iş parçacıklarının bir listesini görüntüleyebilir. Gösterilen sistem özeti bilgisi türleri ve işlemler için görüntülenen bilgi türleri, sırası ve boyutu kullanıcı tarafından yapılandırılabilir ve bu yapılandırma yeniden başlatmalarda kalıcı hale getirilebilir.

kaynak

iyi youtube öğretici

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.