Jak znaleźć proces o najwyższym obciążeniu?


10

Mam jednordzeniowy VPS ze średnią obciążeniem przekraczającą czasami 25. Kiedy to osiągnie, staje się nieznośnie powolny, a nawet uruchamiane są polecenia dash, które są szybsze i zużywają mniej pamięci RAM niż bashpotrzeba, aby je uruchomić. Jak mogę wyśledzić, który proces powoduje wysokie obciążenie?


2
sudo apt install htopudostępnia przydatne narzędzie tekstowe do tego celu (bardziej przyjazne dla użytkownika niż standardowe top). Ale topdobrze, jeśli chcesz mieć niewielki ślad.
— sudodus

2
Długość kolejki ładowania wskazuje, ile procesów jest gotowych do użycia procesora. To niekoniecznie musi być pojedynczy proces powodujący problem.
— Thorbjørn Ravn Andersen

Odpowiedzi:


16

Możesz zainstalować htop. Dobrą rzeczą htopjest to, że pokaże twoje użycie na procesor, a także znaczący tekstowy wykres twojej pamięci i zamiany użycia u góry.

Aby zainstalować htop:

sudo apt-get install htop

Zacznij to:

htop

wprowadź opis zdjęcia tutaj

Naciśnij, F6aby posortować procesy, a następnie za pomocą klawisza nawigacyjnego możesz wybrać PERCENT_CPUi nacisnąć Enter.

wprowadź opis zdjęcia tutaj

Lub możesz użyć topw ten sposób ( źródło ):

top -b -n 1 | head -n 12

2
Jako skrót możesz użyć Pdo sortowania według użycia procesora, Mpamięci lub Tczasu oraz tpowrotu do układu drzewa.
— deltab

Co ciekawe, htopma podstawową obsługę myszy. Jeśli klikniesz kolumny, pozwoli ci to również posortować według nich (jeśli się nie mylę). Istnieją inne operacje, które działają z myszą.
— Ismael Miguel

11

Poniższe informacje zostały po prostu skradzione z Unix.SE: Znajdź proces, który zajmuje maksymalne użycie procesora, jeśli użycie procesora jest większe niż 60%? , choć oczywiście dostosowane do tego pytania.

wyświetla listę procesów według określonego użycia procesora

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

Daje to listę procesów, które mają >0.0% wykorzystania procesora , możesz zmienić tę wartość zgodnie z własnymi potrzebami, np >50.0. Każda linia zawiera procent wykorzystania procesora, PID i plik procesu.

wyświetla procesy z największym wykorzystaniem procesora

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

Pokazuje 5 najlepszych NR<=5procesów aktualnie powodujących największe obciążenie procesora.


1

Wczoraj studiowałem awki bawiłem się dwiema pozostałymi odpowiedziami. Oto wynik:

  • Uzyskaj tylko proces o najwyższym zużyciu procesora, używając 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}'
    
  • Uzyskaj trzy procesy o największym wykorzystaniu procesora, używając top:

    top -b -n 1 | awk 'NR>7 && NR<11 {printf "top: %5s %6d %s %s\n",$9,$1,$12,$13}'
    
  • Uzyskaj trzy procesy o największym wykorzystaniu procesora, używając ps aux:

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

Próbowałem uruchomić dwa ostatnie polecenia jednocześnie (za pomocą <command>; wait; <command>i <command> & <command> &), ale potem zdałem sobie sprawę, że to w ogóle niemożliwe :)


Bibliografia:


Ostatni nie pokazuje procesu z największym zużyciem procesora, ale zaczyna się od drugiego, prawdopodobnie miałeś na myśli, NR>=2że tam - okazuje się, psże opcja hpomija wiersz nagłówka, zobacz moją zaktualizowaną odpowiedź.
— deser

@ deser, masz rację, wcześniej tak było NR>=2, ale NR>1jest krótkie :) Zaktualizowałem odpowiedź.
— pa4080,

1

Użyj toppolecenia

top- wyświetla procesy Linux

Najlepszy program zapewnia dynamiczny widok działającego systemu w czasie rzeczywistym. Może wyświetlać informacje podsumowujące system, a także listę procesów lub wątków aktualnie zarządzanych przez jądro Linuksa. Typy wyświetlanych informacji podsumowujących system oraz typy, kolejność i rozmiar informacji wyświetlanych dla procesów są konfigurowalne przez użytkownika, a konfigurację tę można utrwalić po ponownym uruchomieniu.

źródło

dobry samouczek youtube

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.