Udostępnij za pośrednictwem


Część 3.2 — Menedżerowie zadań systemu Linux, top i htop

Dotyczy: .NET w systemie Linux

W tym artykule przedstawiono sposób używania top narzędzi wiersza polecenia i htop monitorowania procesów.

Wymagania wstępne

Podobnie jak w poprzednich częściach, część ta ma strukturę, aby położyć większy nacisk na teorię i główne elementy do naśladowania po rozpoczęciu rozwiązywania problemów. Nie ma żadnych wymagań wstępnych. Należy jednak skonfigurować następujące elementy, jeśli wykonano wszystkie kroki tego szkolenia do tej pory:

  • Serwer Nginx ma dwie witryny internetowe:
    • Pierwsza witryna internetowa nasłuchuje żądań przy użyciu nagłówka hosta myfirstwebsite (http://myfirstwebsite) i kieruje żądania do aplikacji demonstracyjnej ASP.NET Core, która nasłuchuje na porcie 5000.
    • Druga witryna internetowa nasłuchuje żądań przy użyciu nagłówka hosta buggyamb (http://buggyamb) i kieruje żądania do drugiej aplikacji ASP.NET Core, która nasłuchuje na porcie 5001.
  • Obie aplikacje ASP.NET Core są uruchomione jako usługi, które są uruchamiane automatycznie po ponownym uruchomieniu serwera lub aplikacje przestaną odpowiadać lub kończy się niepowodzeniem.
  • Zapora lokalna systemu Linux jest włączona i skonfigurowana do zezwalania na ruch SSH i HTTP.

Cel tej części

Podczas rozwiązywania problemu z wydajnością może być konieczne monitorowanie użycia procesora CPU i pamięci procesu, aby zrozumieć, jak jego zużycie zasobów ewoluuje w czasie. W systemie Windows możesz użyć Menedżera zadań, aby to zrobić. System Linux ma kilka narzędzi, które mają na celu osiągnięcie tego samego celu.

W tej części zostaną zbadane top narzędzia wiersza polecenia i htop do monitorowania procesów.

najpopularniejsze

Aby otworzyć odpowiednik Menedżera zadań w systemie Linux, uruchom top polecenie .

Zrzut ekranu przedstawiający pierwsze polecenie.

W tym przykładzie można zaobserwować w pierwszym wymienionym procesie piD 19933, że proces wykazuje wysokie użycie procesora CPU, a użycie pamięci jest również wysokie.

Wybieranie i anulowanie zaznaczenia kolumn

Aby dodać lub usunąć kolumny w widoku, który top udostępnia narzędzie, wybierz F podczas uruchamiania narzędzia. Kolumny oznaczone gwiazdką (*) to kolumny wybrane do wyświetlenia. Użyj strzałek, aby przejść przez dostępne kolumny i użyć paska spacji, aby wybrać lub usunąć zaznaczenie kolumn. Następnie wybierz Esc , aby zakończyć.

Zrzut ekranu przedstawiający informacje o kolumnach.

Zmiany zostaną zapisane dla konta użytkownika. Następnym razem, gdy uruchomisz polecenie top, zobaczysz wybrane kolumny.

Filtrowanie danych wyjściowych według użytkowników

Aby móc kierować problematyczne scenariusze użycia zasobów, ważne jest, aby wiedzieć, jak filtrować top dane wyjściowe. Jedną z najbardziej typowych metod jest filtrowanie procesów według nazwy użytkownika. Możesz wybrać pozycję U, a następnie wpisać nazwę użytkownika. Poniższy zrzut ekranu przedstawia top narzędzie filtrujące dostępne migawki procesów dla użytkownika www-data.

Zrzut ekranu przedstawiający informacje o użytkownikach.

Po wybraniu pozycji Enter zobaczysz procesy uruchamiane przez danego użytkownika (użytkownik www-data w tym przykładzie).

Zrzut ekranu przedstawiający informacje o użytkowniku.

Podczas inspekcji danych wyjściowych filtrowanego top widoku można zobaczyć, że dwa procesy są procesami platformy .NET. Te dwa procesy uruchamiają dwie aplikacje ASP.NET Core, podczas gdy pozostałe dwa procesy należą do serwera Nginx.

Filtry można używać podczas bezpośredniego uruchamiania top polecenia. Jeśli na przykład uruchomisz top -u www-data polecenie, zwróci to samo dane wyjściowe, co w przypadku otwarcia top narzędzia i wybrania pozycji U , aby filtrować według użytkownika.

Usuwanie bezczynnych procesów

Wybierz pozycję I lub uruchom top -i polecenie, aby odfiltrować top dane wyjściowe, aby wyświetlić tylko procesy zużywające procesor CPU. Poniższy zrzut ekranu przedstawia dane wyjściowe top -i -u www-data polecenia. Zwróć uwagę, że dane top wyjściowe ukrywają procesy bezczynności, mimo że istnieją cztery procesy, które zostały uruchomione przy użyciu konta użytkownika www-data. Tylko proces, który ma piD=19933 zużywa procesor CPU.

Zrzut ekranu przedstawiający usuwanie informacji.

Wybierz ponownie pozycję Przełącz i pokaż też bezczynne procesy.

Zabij procesy

Aby zabić lub zakończyć proces, musisz wysłać sygnał zabicia do procesu. Możesz pamiętać, że wcześniej użyliśmy sudo kill -9 <PID> polecenia w celu zabicia procesu. Możesz również zabić procesy przy użyciu polecenia top. Wybierz pozycję K , aby zabić proces podczas top działania, a następnie wpisz identyfikator PID procesu, który chcesz zabić.

Zrzut ekranu przedstawiający polecenie kill.

Po wybraniu Entertop zostanie wyświetlony monit o typ sygnału. Wybierz pozycję Wprowadź jeszcze raz, aby wysłać sygnał "zakończ" (15/sigterm).

Zrzut ekranu przedstawiający polecenie kill top.

Po kilku sekundach zobaczysz, że na liście brakuje procesu 122632 PID. Pamiętaj, że na listach proces "122632" odpowiada aplikacji BuggyAmb ASP.NET Core. Ponieważ został on skonfigurowany do automatycznego uruchamiania, zobaczysz, że po zamknięciu zostanie uruchomiony nowy proces .NET, który ma nowy identyfikator PID.

htop

Htop to przeglądarka procesów i aplikacja trybu tekstowego do monitorowania systemu w czasie rzeczywistym, podobnie jak top. Jest ona łatwa w użyciu i wyświetla pełną listę uruchomionych procesów.

Narzędzie htop jest wstępnie zainstalowane w dystrybucji systemu Ubuntu Linux, który służy do instalowania serwera wirtualnego na potrzeby tego kursu. Jeśli htop nie zainstalowano go w dystrybucji systemu Linux, możesz zainstalować go za pomocą menedżerów pakietów w systemie Linux. (Zobacz Część 1.3 — Aby uzyskać szczegółowe informacje, zainstaluj platformę .NET w systemie Linux ).

Aby uruchomić narzędzie, uruchom htop polecenie . Zobaczysz kolorowe dane wyjściowe podobne do następujących:

Zrzut ekranu przedstawiający polecenie kill htop.

Uwaga 16.

Końcowy wiersz wskazuje klucze funkcji, których można użyć. Wybierz F6 , aby sortować według różnych opcji, użyj strzałek, aby wybrać kolumnę PERCENT_MEM , a następnie wybierz Enter. Spowoduje to posortowanie procesów według użycia pamięci.

Zrzut ekranu przedstawiający użycie pamięci.

Podobnie jak w przypadku top polecenia, można użyć skrótów klawiaturowych dla kilku funkcji. Na przykład wybierz pozycję U , aby wybrać nazwę użytkownika z listy.

Zrzut ekranu przedstawiający informacje o nazwie użytkownika.

Jednak w danych wyjściowych htop jest coś mylącego. Na podstawie danych wyjściowych ostatnich przykładów należy oczekiwać wyświetlenia czterech procesów dla użytkownika www-data. Widzimy jednak, że istnieje wiele więcej wpisów. Co może być przyczyną tego zachowania?

Różnica w danych wyjściowych występuje, ponieważ htop domyślnie pokazuje procesy i ich wątki. Jeśli nie chcesz widzieć wątków, zalecamy, aby zawsze wyłączać widok wątków, aby dane wyjściowe było bardziej czytelne. Aby wyłączyć widok wątku i wyświetlić tylko procesy, wybierz pozycję Shift+H. Poniższy zrzut ekranu przedstawia procesy bez wątków.

Zrzut ekranu przedstawiający informacje o procesie.

Jeśli musisz zabić proces, wybierz proces przy użyciu strzałek, wybierz F9, a następnie wybierz Enter , aby wysłać sygnał "zakończ".

Zrzut ekranu przedstawiający informacje o zakończeniu działania.

Ten zwięzły przegląd powinien umożliwić zrozumienie, które procesy działają i zużywają zasoby w systemie. Aby zakończyć pracęhtop, wybierz F10 lub Ctrl+C.

Następne kroki

W następnej części tej serii (część 3.3 — debugery, zrzuty podstawowe i zbieranie zrzutów rdzeni) omówiono debugery i pliki zrzutów.