Jak widać ekran htop jest podzielony na kilka części zawierających kolejno:

  • informacje o obciążeniu procesora zajętości pamięci i pliku wymiany
  • ilości uruchomionych procesów (tasks)
  • średnim obciążeniu sytemu (load average)
  • czasie działania systemu (uptime)
  • interaktywną listę procesów

Każda ze wspomnianych części jest konfigurowalna przez użytkownika. Klawisz F2 daje nam dostęp do menu „setup” gdzie mamy cały wachlarz możliwości ustawień co, gdzie i w jakiej formie htop ma nam pokazywać.

htop - wygląd

Zatrzymajmy się na chwilę przy każdej części:

Obciążenie procesora, zajętość pamięci, i użycie pliku wymiany: htop pokazuje każdy procesor bądź rdzeń na osobnym wskaźniku. Tak więc w przypadku, gdy w systemie mamy jeden procesor 1-rdzeniowy, to zobaczymy jeden wskaźnik. Jeśli natomiast nasz komputer posiada jeden procesor 4-rdzeniowy, bądź dwa 2-rdzeniowe to htop pokaże nam w każdym przypadku cztery wskaźniki.

Lista procesów: procesy w formie listy lub drzewa, które możemy sortować pod względem wykorzystania procesora, pamięci, itp. Najbardziej rzuca się w oczy możliwość „przewijania” listy procesów zarówno w pionie jak i poziomie, co pozwala na pokazanie kompletnej listy procesów wraz z kompletną linią poleceń. Htop umożliwia także „zabicie”, jak i zmianę parametru „nice” procesu, bez podawania jego numeru PID, jak to ma miejsce w top, wyświetlenie otwartych plików przez dany proces, czy też śledzenie jego wywołań systemowych. F1, bądź ? daje nam dostęp do ekranu pomocy, gdzie opisane są możliwości programu w tym zakresie.

Tasks, load average, uptime: tutaj chciałbym zatrzymać się na dłużej, gdyż o ile tasks i uptime mówią raczej same za siebie, to load average jest bardzo ciekawym parametrem, gdyż dzięki niemu możemy w jednej chwili ocenić czy nasz system ma kłopoty wydajnościowe związane z procesorem, czy też nie. Jak sama nazwa wskazuje wyraża on średnie obciążenie, jednak nie w formie do jakiej z reguły jesteśmy przyzwyczajeni czyli „procentów”. Zamiast tego mamy trzy liczby. Są to średnie obciążenia systemu liczone odpowiednio w czasie: ostatniej minuty, pięciu ostatnich minut i piętnastu minut. Natomiast cyfry oznaczają liczbę procesów wykonywanych w danej chwili i liczbę procesów czekających na dostęp do procesora.

Reasumując:
Load average: 2.23, 0.89, 0,60 odczytujemy następująco: w ciągu ostatniej minuty w naszym systemie wykonywany był średnio jeden proces a drugi i „jeszcze trochę” czekało w kolejce na dostęp do procesora. Przekładając to na procenty możemy powiedzieć że średnio licząc nasz procesor miał o 123% więcej zadań do zrealizowania niż był w stanie zrobić. W ujęciu pięciu minut, miał do wykonania 0.89 procesu, a więc przekładając był obciążony w 89%, a w ujęciu piętnastu minut w 60%. Jaka wartość load average świadczy że nasz system nie ma problemów z wydajnością od strony procesora? Każda poniżej 1.00. Teoretycznie przy wartości 1.00 procesor jest w pełni i optymalnie wykorzystany, ale osobiście liczby około 0.80 przyjmuję jako wartości skłaniające do rozmyślań o rozbudowie serwera.

Pamiętajmy w tym miejscu o bardzo istotnej kwestii – ilości procesorów i rdzeni. Na maszynach 4-rdzeniowych możecie spotkać się z load average o wartości na przykład 3.55 i system będzie działał płynnie. Taka wartość load average na sprzęcie z jednym 1-rdzeniowym procesorem spowoduje praktycznie całkowite zapchanie systemu. Ma to miejsce dla tego, że load average jest liczony dla każdego rdzenia osobno, a więc na maszynie z szesnastoma rdzeniami może spokojnie wynosić dajmy na to 12.76 i to tylko świadczy o tym, że dobrze zaplanowaliśmy nasz zakup.

Na koniec rodzynek – system przyzwoicie obciążony czyli load average = 94.43, 58.04, 27.70
(źródło: http://htop.sourceforge.net/)

Htop - 128 rdzeni w komputerze

Poprzedni artykułOpenSubdiv 2.0 zostanie wydany na licencji Apache
Następny artykułCompuLab Utilite – minikomputer z procesorem ARM Cortex-A9

13 KOMENTARZE

  1. Ten program akurat znałem (w przeciwieństwie do opisywanego wcześniej iftop) i uważam, że jest niezwykle przydatny!

  2. Program znałem, jednakże dzięki wielkie za wyjaśnienie tego "Load Average", to mnie zastanawiało.
    To tak na logikę ten parametr można dzielić przez liczbę procesorów w systemie.

    • Oczywiście, jeśli podzielisz LA przez liczbę procesorów i rdzeni to otrzymasz parametr jakby z punktu widzenia systemu z jednym procesorem.

    • Obawiam się, że nie jest to prawda. Tę wartość NALEŻY dzielić przez liczbę procesorów (także rdzeni). Load 2 na dwuprocesorowej maszynie oznacza pełne wykorzystanie obu rdzeni. Load 1, jednego.

  3. Bardzo fajne narzedzie, nie rozumiem czemu jeszcze nie zastapilo domyslnego TOPa. Jedna z pierwszych rzeczy jaka robie na swierzo postawionym systemie to doinstalowywuje wlasnie HTOP.

    • To jeszcze warto zainstalować przeglądarkę www z wbudowanym automatycznym sprawdzaniem błędów. :)

    • Top wystarcza. Pokazuje praktycznie to samo i mniej obciąża sam system. Też ładnie koloruje i pokazuje obciążenie per core. Można zmusić go do innych cudów nawet i jest zawsze pod ręką.

  4. Load Average to jednak nie tylko procesor. Z doświadczenia widziałem serwery gdzie LA było powyżej 5 a patrząc po procesach nic się nie działo – niestety serwer był mocno ubity i chodził jak krowa. Do LA wliczane są również procesy, który czekają na dane z magistrali I/O, czyli możliwe są sytuacje kiedy dyski nie wyrabiają, LA jest gigantyczne a procek się nudzi.

    Szczególnie jest to widoczne w przypadkach kiedy macierz dysków zaczyna świrować i system cały czas czeka na dane.

    • Bardzo słuszna uwaga. Potraktowałem trochę po macoszemu temat I/O (miał być kolejnym tematem w kwestii monitorowania zasobów;)) skupiając się na samym procesorze i faktycznie mamy tutaj niedomówienie.
      Jest dokładnie tak jak mówisz – może być tak że procesor "nic nie robi" a LA jest wysokie bo kilka procesów czeka na zakończenie operacji wejścia/wyjścia, dyskowych bądź sieciowych, procesy te są w stanie o ładnej nazwie: "uninterruptible sleep state" i czekają na dane z podsystemu I/O niezbędne to ich dalszego wykonywania przez procesor. Reasumując na kolejkę która ma wpływ na wartość LA składają się: proces aktualnie wykonywany przez procesor, procesy czekające na dostęp do procesora i procesy czekające na dane z podsystemów wejścia/wyjścia.
      Wielkie dzięki za zwrócenie uwagi.

  5. Tam powinno być 223% a nie 123% zdaje się. Jeżeli jeden proces to jest 1.00=100%, drugi kolejne 1 czyli 2 w sumie 200%=2.00 i jeszcze trochę czyli 23%=0,23 to w sumie daje 2,23=223% a nie 123%. To zresztą potwierdza kolejne zdanie, w którym 0,89 traktujesz jak 89%.

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj