HTOP - kompleksowy poradnik dla opornych

Poradniki
administracja, htop
bopke
bopke Moderator forum.lvlup.pro

htop

htop to narzędzie do przeglądania i manipulowania procesami działającymi w systemie. Pozwala na przeglądanie dokładnych danych dotyczących obciążenia procesora, pamięci ram i pamięci swap w kontekście od całości systemu operacyjnego do pojedynczych procesów. Oferuje nam przy tym całą gamę operacji, które możemy wykonać na procesach.

Okno programu jest podzielone na 3 części, w moim wypadku wygląda ono tak:

image|642x386

Pierwszą część stanowi graficzne przedstawienie zużycie zasobów serwera w danej chwili. Paski 1 i 2 przedstawiają zużycie każdego z moich dwóch rdzeni procesora. Jeżeli Twój serwer ma więcej lub mniej rdzeni procesora, to będzie miał odpowiednio więcej lub mniej pasków. Pasek ukazujący nam zużycie procesora może mieć fragmenty w 4 kolorach, które oznaczają odpowiednio:

  • Niebieski — moc rdzenia zużyta przez procesy niskiego priorytetu
  • zielony — moc rdzenia zużyta przez procesy normalne
  • czerwony — moc rdzenia zużyta przez jądro systemu
  • błękitny — moc obliczeniowa zużyta na potrzeby wirtualizacji (np. kolejnych vpsów ;) )

Pasek Mem przedstawia zużycie pamięci ram. a jego pasek może mieć fragmenty w trzech kolorach:

  • zielony - pamięć używana przez procesy
  • niebieski - pamięć buforów
  • pomarańczowy - cache

Ostatni pasek to Swp, przedstawia on zużycie pamięci swap. On przyjmuje tylko jeden kolor - czerwony, reprezentujący zużycie.

Drugą część okna stanowią trzy linijki tekstu, z których pierwsza, Tasks, informuje nas (od lewej) o ilości zadań naszego serwera, ilości uruchomionych w danej chwili procesów i ilości procesów pracujących w danej chwili ( gdyż tak naprawdę większość procesów "śpi" czekając na jakieś zadanie, np serwer stron internetowych śpi czekając aż ktoś będzie chciał wejść na naszą stronę ).

Druga linijka, Load average, przedstawia nam średnie obciążenie systemu w ciągu (od lewej) ostatniej minuty, ostatnich pięciu minut i ostatnich piętnastu minut. Większość osób może sobie teraz pomyśleć, że to wyraża się procentami obciążenia procesora, ale tak nie jest. Ten system jest znacznie zmyślniejszy, gdyż przedstawia on średnią ilość procesów przetwarzanych przez procesor w danej chwili. Oznacza to, że problematyczne obciążenie to obciążenie, gdzie liczby te są większe niż ilość rdzeni naszego procesora. Load average: wynoszące np 1.9 nie byłoby problemem dla procesora z mojego serwera, gdyż ma 2 rdzenie. Jeżeli jednak Load average wynosiłoby więcej niż 2, to powinienem już zacząć zastanawiać się nad przejściem na wyższy pakiet oferujący więcej rdzeni procesora.

Ostatnia, trzecia linijka jest dosyć klarowna - wyświetla nam czas który upłynął od uruchomienia serwera.

Trzecią część, a zarazem zajmującą najwięcej na ekranie stanowi lista procesów - ta jest dla nas najciekawsza, bowiem pokazuje ona wszystkie pracujące procesy i pozwala wykonywać nam różne akcje, zgodnie z tym co jest napisane na dolnej belce programu z podpowiedziami klawiszy. Jak widać, Posługujemy się programem za pomocą klawiszy F1-F10. Dodatkowo możemy poruszać się po liście za pomocą strzałek, a spacją zaznaczać procesy, dzięki czemu wszystko co będziemy robili, będzie miało efekt na każdym zaznaczonym procesie, a nie tylko jednym. Odznaczenie procesu polega na ponownym wybraniu go kursorem i ponownym wciśnięciu spacji.

Na poniższym obrazku widzimy, od góry:

  • zwykły proces na liście
  • zaznaczony proces na liście
  • wybrany proces przez kursor (strzałkami poruszamy tym kursorem)

image|640x48

Na niektórych systemach może działać również poruszanie kursorem poprzez klikanie w okienko terminala na wybrany proces.

Skoro mamy już wybrane nasze przykładowe procesy, to należałoby coś z nimi zrobić. Zanim jednak do tego przejdziemy, to skupmy się na dolnej belce programu, na której mamy wypisane funkcje przypisane do poszczególnych klawiszy.

image|641x17

Więc po kolei:

  • F1 - Help jak nazwa wskazuje, wyświetla nam ekran pomocy. Nie będę się nad nim zbytnio rozwodził, to statyczna część programu która po krótce objaśnia nam działanie programu.

  • F2 - Setup pozwala nam dokładnie ustawić przeróżne rzeczy dotyczące tego, co program nam wyświetla, a także sposób prezentacji. Tutaj również nie będę się zbyt długo rozwodził, ponieważ jest bardzo dużo możliwości, a zmieniają tylko kosmetycznie wygląd, lub ograniczają wybiórczo procesy, które nam się wyświetlają. Do tego trzeba podejść bardzo preferencyjnie, więc pozostawiam to jak jest.

  • F3 - Search otwiera nam na dolnym pasku pole na wpisywanie, dzięki czemu możemy przeszukiwać listę procesów pod kątem danego polecenia wywołującego proces.

  • F4 - Filter pozwala nam na filtrowanie wyświetlanych procesów poprzez odrzucenie procesów, których komenda wywołania nie zawiera wpisywanej frazy

  • F5 - Tree (sorted) pozwala nam na przełączenie widoku między widokiem "drzewa" lub widokiem sortowanym. Widok tree od od widoku sorted różni się tym, że w widoku tree widzimy drzewa procesów, który proces wynika z którego itp., podczas kiedy w widoku sortowanym widzimy po prostu listę procesów. Widok tree prezentuje się następująco: image|654x290 W zależności od ustawienia sposobu wyświetlania, opcja pod klawiszem F6 zmienia się.

    • F6 - SortBy występuje gdy mamy ustawiony widok sorted. Pozwala on na wybranie kryterium do sortowania naszych procesów. Aktualnie wybrane kryterium jest podświetlane na niebiesko na górnej belce listy, przykładowo na poniższym screenie procesy są sortowane po PID, czyli numerze procesu. image|648x36 Po wciśnięciu klawisza F6 pojawi nam się z boku panel, na którym za pomocą strzałek możemy wybrać kryterium do sortowania. image|113x215 Od góry:
      • PID Process ID, numer porządkowy procesu. Im szybciej wystartował, tym niższy numer ma.
      • USER użytkownik, do którego należy dany proces.
      • PRIORITY priorytet procesu, im niższy tym lepszy.
      • NICE poziom atrybutu nice procesu, im niższy tym lepszy. poziom nice wpływa na priorytet procesu.
      • M_SIZE poziom pamięci wirtualnej zajętej przez proces. Odpowiada mu kolumna VIRT na liście. Jest to suma zajętej pamięci ram i używanych danych na dysku.
      • M_RESIDENT faktyczna ilość pamięci ram zajęta przez proces.
      • M_SHARE używana pamięć ram, która jest wspólna z jakimiś innymi procesami.
      • STATE stan procesu - na ogół proces może być w dwóch stanach - S, czyli sleeping, "śpiący", lub R, czyli Running, pracujący.
      • PERCENT_CPU procentowa wartość zużycia mocy procesora.
      • PERCENT_MEM procentowa wartość zużycia pamięci ram.
      • TIME czas procesora który zużywa aplikacja.
      • Command polecenie które wywołało dany proces.
    • F6 - COLLAP występuje gdy mamy ustawiony widok tree. Służy do zwijania drzewa wychodzącego od zaznaczonego procesu, przykładowo przed zwinięciem: image|655x200 i po zwinięciu: image|649x50
  • F7 - Nice - pozwala nam na zmniejszenie wartości nice procesu. Im niższa jest ta wartość, tym bardziej priorytetowo system traktuje dany proces.

  • F8- Nice + pozwala nam na zwiększenie wartości nice procesu. Im wyższa jest ta wartość, tym mniej priorytetowo system traktuje dany proces.

  • F9 - Kill pozwala nam zabić dany proces. Po wciśnięciu klawisza pojawi nam się boczne menu w którym strzałkami możemy wybrać sygnał, który chcemy wysłać do procesu, aby kazać mu się zamknąć. image|101x499 Sygnały to bardzo złożony temat, któremu trzebaby poświęcić osobny poradnik, więc skupię się tylko na dwóch najbardziej typowych sygnałach, które na ogół najbardziej mogą nas interesować. Są to sygnały 15 SIGTERM i 9 SIGKILL. Za pomocą pierwszego wysyłamy niejako "prośbę" do procesu o wyłączenie się, natomiast drugi z nich po prostu wyłącza dany proces nie dając mu czasu na reakcję.

  • F10 - Quit wyłącza program.

Oto jest - bardzo przydatny, estetyczny HTOP. W razie problemów lub niejasności zapraszam do zadawania pytań w wątku :slight_smile: