TOP(1)

NAZWA
top - wyświetl najważniejsze procesy CPU

SKŁADNIA
top [-] [d opóźnienie] [p pid] [q] [c] [C] [S] [s] [i] [n] [b]

OPIS
top daje spojrzenie w czasie rzeczywistym na działalność procesora. Wyświetla listę najbardziej zasobożernych zadań systemu i udostępnia interakcyjny interfejs obsługi procesów. Może sortować zadania wg zużycia CPU, pamięci i czasu działania. może być lepiej skonfigurowany niż standardowy top z procps. Większość właściwości można wybrać albo przez komendę interakcyjną, albo przez podanie właściwości w pliku konfiguracyjnym. Zobacz niżej szczegóły.

OPCJE LINII POLECEŃ
Określa opóźnienie między odświeżeniami ekranu. Można to zmieniać komendą interakcyjną s. Monitoruje jedynie procesy o danym id procesu. Opcję tę można podawać do dwudziestu razy. Jest ona niedostępna interakcyjnie ani nie może być ustawiona w pliku konfiguracyjnym. Powoduje to, że top odświeża się bez opóźnienia. Jeśli wywołujący jest superużytkownikiem, top działa z najwyższym możliwym priorytetem. Określa tryb kumulacyjny, gdzie każdy proces jest wypisywany z czasem CPU, który spożytkowanym przez niego oraz jego martwe dzieci. Jest to podobne do flagi -S programu ps(1). Zobacz dyskusję poniżej o komendzie interakcyjnej S. Nakazuje programowi top pracę w trybie bezpiecznym. Wyłącza potencjalnie niebezpieczne komendy interakcyjne (patrz niżej). Szykownie jest pozostawić bezpiecznego topa na dodatkowym terminalu. Uruchamia topa, ignorując wszelkie procesy duchy i procesy próżnujące. Zobacz też komendę interakcyjną i poniżej. wyświetla oprócz indywidulnych stanów CPU również łączne stany CPU. Opcja ta ma znaczenie jedynie w systemach SMP. wyświetla linię poleceń zamiast samej nazwy polecenia. Domyślne zachowanie zostało zmienione, gdyż wydaje się to bardziej przydatne. Liczba iteracji. Odświeża wyświetlacz tyle razy i zakończ działanie. Tryb wsadowy. Przydatne do wysyłania wyjścia z top do innych programów lub do pliku. W trybie tym top nie przyjmuje wejścia z linii poleceń. Działa dopóki nie wykona określonej za pomocą opcji n liczby iteracji lub dopóki nie zostanie zabity. Wyjście jest czystym tekstem, nadającym się do wyświetlenia na zwykłym terminalu.

OPISY PÓL
top wyświetla różne informacje o stanie procesora. Wyświetlacz domyślnie jest odświeżany co 5 sekund, lecz można to zmienić opcją d linii poleceń, lub komendą interakcyjną s. Ta linia wyświetla czas, przez jaki system pracuje oraz trzy miary obciążenia systemu. Określaja one średnią liczbę procesów gotowych do uruchomienia w ostatniej minucie, ostatnich 5 i 15 minutach. Linia ta jest podobna do wyniku polecenia uptime(1). Wyświetlanie uptime może być przełączane komendą interakcyjną l. Całkowita liczba procesów, pracujących podczas ostatniego odświeżenia. Jest to rozbite na liczbę zadań, które aktualnie się wykonują, śpią, są zatrzymane, lub niemartwe. Wyświetlanie procesów i stanów może być przełączane komendą interakcyjną t. Pokazuje zajętość czasu CPU w trybie użytkownika, w trybie systemowym, w trybie zadań z ujemną wartością nice i trybie bezczynności. Czas spędzony na zadaniach z ujemną wartością nice jest wliczany do czasu systemowego i użytkownika, więc całość przekroczy 100%. Wyświetlanie procesów i stanów może być przełączane komendą interakcyjną t. Statystyki użycia pamięci, obejmujące całkowitą dostępną pamięć, wolną pamięć, pamięć zajętą, pamięć dzieloną i pamięć przeznaczoną na bufory. Wyświetlanie informacji o pamięci można przełączać komendą interakcyjną m. Statystyki obszaru wymiany, opisujące całkowity obszar wymiany, dostępny obszar wymiany i użyty obszar wymiany. Linia ta, wraz z Mem są podobne do wyjścia komendy free(1). Identyfikator procesu danego zadania. Identyfikator procesu rodzicielskiego danego zadania. Identyfikator użytkownika, który jest właścicielem zadania. Nazwa użytkownika, który jest właścicielem zadania. Priorytet zadania. Wartość nice zadania. Ujemne wartości nice oznaczają wyższy priorytet. Pokazywany jest tu w kilobajtach rozmiar kodu zadania plus obszar danych plus rozmiar stosu. Rozmiar kodu zadania. Podaje to dziwne wartości dla procesów jądra i jest zepsute dla procesów ELF. Rozmiar danych + stosu. Jest to zepsute dla procesów ELF. Rozmiar rezydentnet sekcji text (Text Resident Size). Rozmiar części zadania, która uległa wymianie. Rozmiar stron, zaznaczonych jako brudne. Ostatnio używany procesor. (Wartość zmienia się od czasu do czasu - nie jest to błąd; Linux celowo używa słabego powinowactwa. Zauważ również, że sam fakt uruchomienia topa może naruszyć słabe powinowactwo i spowodować, że więcej procesów częściej będzie zmieniać aktualny CPU ze względu na dodatkowe żądania czasu CPU.) Całkowity rozmiar pamięci fizycznej używanej przez zadanie, w kilobajtach. Dla procesów ELF wliczane są użyte strony biblioteki, dla a.out nie. Rozmiar pamięci dzielonej, używanej przez zadanie. Stan pokazywanego zadania. Stan to albo S - spanie, D - nieprzerywane spanie, R - działanie, Z - duchy albo T dla procesów zatrzymanych, bądź śledzonych. Stany te są modyfikowane przez dalsze < dla procesów o ujemnej wartości nice, N dla procesów o dodatniej wartości nice, W dla procesów, które uległy wymianie (nie działa to prawidłowo dla procesów jądra). zależnie od dostępności /boot/psdatabase lub mapy konsolidacji jądra /boot/System.map, pokazuje adres lub nazwę funkcję jądra, podczas wykonywania której zadanie aktualnie śpi. Całkowity czas CPU, zużyty przez zadanie od uruchomienia. Jeśli włączony jest tryb kumulacyjny, wliczany jest też czas zużyty przez zmarłe dzieci procesu. Tryb kumulacyjny można ustawić opcją S linii poleceń lub przełączać komendą interakcyjną S. Linia nagłówka zmieni się wtedy na CTIME. Udział zadania w czasie CPU od ostatniego odświeżenia ekranu, wyrażony jako procent całkowitego czasu CPU. Udział zadania w pamięci fizycznej. Nazwa polecenia zadania, która jest skracana, jeśli jest zbyt długa, by zmieścić się w jednej linii. Zadania w pamięci mają pełną linię poleceń, lecz zadania, które uległy wymianie (swapped-out) mają tylko nazwę programu, ujętą w nawiasy (np. "(getty)"). te pola z kmem top nie są obsługiwane.

KOMENDY INTERACYJNE
Podczas pracy, top rozpoznaje parę jednoklawiszowych funkcji. Część z nich jest wyłączona po przekazaniu opcji s z linii poleceń. Odświeża natychmiast ekran. Przerysowywuje ekran. Wyświetla ekran pomocy, podając krótki opis komend i status trybu bezpiecznego i kumulacyjnego. Zabija proces. Zostaniesz zapytany o PID zadania i sygnał, który mu wysłać. Dla normalnego zabicia, wyślij sygnał 15. Dla pewnego, lecz brutalnego zabicia, wyślij sygnał 9. Domyślnym sygnałem, jak dla kill(1), jest 15, SIGTERM. Komenda ta nie jest dostępna w trybie bezpiecznym. Ignoruj procesy bezczynne i procesy duchy. Jest to przełącznik. Przełącz pomiędzy widokiem w stylu Solarisa (procentowa zajętość CPU rozdzielona pomiędzy łączną liczbę CPU) a widokiem w stylu Iriksa (procentowa zajętość CPU obliczna wyłącznie jako ilość czasu). Jest to przełącznik, który ma znaczenie tylko w stystemach SMP. Zmień liczbę pokazywanych procesów. Zostaniesz zapytany o liczbę. Zastępuje to automatyczne liczbę pokazywanych procesów określoną na podstawie rozmiaru okna. Jeśli podane zostanie 0, top pokaże tyle procesów, ile zmieści się na ekranie. Tak jest domyślnie. Koniec pracy. Zmień wartość nice dla procesu. Zostaniesz zapytany o PID zadania i wartość nice, jaką mu ustawić. Wstawianie wartości dodatniej spowoduje utratę priorytetu. Jeśli top jest uruchomiony przez roota, można wstawić wartość ujemną powodującą, że proces uzyska większy priorytet. Domyślną wartością renice jest 10. Komenda ta nie jest dostępna w trybie bezpiecznym. Przełącza do/z trybu kumulacyjnego, równoważnego ps -S, tj. czasy CPU będą zawierać czasy zakończonych procesów potomnych. Dla niektórych programów, takich jak kompilatory, które pracują przez rozwidlanie wielu zadań, tryb normalny powoduje, że wydają się mniej wymagające niż mówi rzeczywistość. Dla innych jednak, takich jak powłoki czy init, zachowanie to jest prawidłowe. W każdym razie, zawsze można wypróbować tryb kumulacyjny jako inne spojrzenie na zajętość CPU. Zmienia opóźnienie między odświeżeniami. Zostaniesz zapytany o czas opóźnienia w sekundach. Rozpoznawane są wartości ułamkowe, aż do mikrosekund. Wstawienie 0 powoduje stałe odświeżanie. Domyślną wartością jest 5 sekund. Zauważ, że niskie wartości powodują niemal nieczytelnie szybkie zmiany obrazu i mocno zwiększają obciążenie. Komenda ta nie jest dostępna w trybie bezpiecznym. Dodaje pola do wyświetlacza lub je usuwa. Zobacz niżej dla dalszych informacji. Zmienia kolejność wyświetlanych pól. Dalsze informacje poniżej. przełączaj wyświetlanie informacji o obciążeniu i uptime. przełączaj wyświetlanie informacji o pamięci. przełączaj wyświetlanie informacji o procesach i stanach CPU. przełączaj wyświetlanie nazwy komendy i jej pełnej nazwy. sortuj zadania według wieku (najnowsze najpierw). sortuj zadania według zajętości pamięci. sortuj zadania według PIDu (numerycznie). sortuj zadania według zajętości CPU (domyślne). sortuj zadania według czasu / czasu skumulowanego. Zapisz konfigurację do ~/.toprc. Jest to zalecany sposób zapisywania konfiguracji topa.

Ekrany pól i kolejności
Po naciśnięciu f, F, o lub O pokaże ci się ekran, pokazujący w górnej linii kolejność pól oraz krótkie opisy ich zawartości. Łańcuch kolejności pól ma następującą składnię: Jeśli odpowiadająca danemu polu litera w łańcuchu pól jest wielka, to pole jest wyświetlane. Jest to dodatkowo oznaczane gwiazdką na początku opisu pola. Kolejność pól odpowiada kolejności liter w łańcuchu.
 Z ekranu wyboru `f' pola można łatwo przełączać wyświetlanie danego pola, naciskając odpowiednią literę.
 Z ekranu kolejności `o' można przesuwać pole w lewo, naciskając odpowiadającą mu wielką literę, a w prawo, naciskając małą.

Pliki konfiguracyjne
Top odczytuje domyślną konfigurację z dwóch plików, /etc/toprc i ~/.toprc. Globalny plik konfiguracyjny może służyć do ograniczenia dla nieuprzywilejowanych użytkowników możliwości topa do trybu bezpiecznego. Jeśli to jest wymagane, plik powinien zawierać 's', określające tryb bezpieczny oraz cyfrę d (2<=d<=9), określającą domyślne opóźnienie (w sekundach) w jednej linii. Prywatny plik konfiguracyjny składa się z dwóch linii. Pierwsza zawiera małe i wielkie litery określające, które pola i w jakiej kolejności mają być wyświetlane. Litery te odpowiadają literom z ekranu wyboru topa. Jako że nie jest to zbyt pouczające, zaleca się wybieranie pól interacyjnie i zapisanie kolejności za pomocą polecenia W. Druga linia jest bardziej interesująca (i ważniejsza). Zawiera informacje o innych opcjach. Najważniejsze, jeśli zachowałeś konfigurację w trybie bezpiecznym, jest to, że nie uzyskasz niebezpiecznego topa bez usunięcia ~/.toprc. Cyfra określa czas opóźnienia między odświeżeniami, wielkie 'S' - tryb kumulacyjny, małe 'i' - tryb bez-próżnowania, wielkie 'I' - widok w stylu Iriksa. Podobnie jak w trybie interakcyjnym, małe 'm', 'l', 't' powstrzymują wyświetlanie informacji o pamięci i czasie działania odp. procesów oraz o stanie CPU. Zmiana domyślnej kolejności sortowania (wg zajętości CPU) nie jest obecnie wspierana.

UWAGI
Ten oparty o proc top działa przez odczyt plików z systemu plików proc, zamontowanego w /proc. Jeśli /proc nie jest zamontowany, top nie będzie działać.

%CPU Pokazuje procent czasu_cpu/czasu_rzeczywistego w okresie czasu między odświeżeniami. Dla pierwszego odświeżenia używane jest krótkie opóźnienie i dominuje tam top. Później, top spadnie na dalsze pozycje i widoczne stanie się bardziej sensowne zestawienie zajętości CPU.

Pola SIZE i RSS nie liczą tablic stron i task_struct procesu; jest to co najmniej 12K pamięci, która jednak pozostaje użyta. SIZE jest rozmiarem wirtualnym procesu (kod+dane+stos).

Pamiętaj, że proces musi umrzeć, aby jego czas został zanotowany przez rodzica w trybie kumulacyjnym. Być może przydatniejsze byłoby śledzenie takich procesów i dodawanie czasu, lecz byłoby to dość kosztowne. Poza tym wtedy zachowanie top byłoby niekompatybilne z ps.

PLIKI
/etc/toprc Globalny plik konfiguracyjny. ~/.toprc Prywatny plik konfiguracyjny.

ZOBACZ TAKŻE
ps(1), free(1), uptime(1), kill(1), renice(1)

BŁĘDY
Jeśli okno jest mniejsze niż ok. 70x7, top nie będzie prawidłowo formatował danych.
 Wiele pól wciąż ma problemy z procesami ELF.
 Ekrany pomocy nie są jeszcze zoptymalizowane na okna mniejsze niż 25 linii.

AUTOR
top został początkowo napisany przez Rogera Binnsa, w oparciu o program ps Branko Lankestera <lankeste@fwi.uva.nl>. Robert Nation <nation@rocket.sanders.lockheed.com> zmodyfikował go znacząco do używania systemu plików proc, w oparciu o program ps Michaela K. Johnsona <johnsonm@redhat.com>. Michael Shields <mjshield@nyx.cs.du.edu> dokonał wielu zmian, łącznie z bezpiecznym i kumulacyjnym trybem działania. Tim Janik <timj@gtk.org> dodał sortowanie według wieku oraz możliwość monitorowania poszczególnych procesów na postawie ich identyfikatorów. Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> zmienił znacząco program w celu obsługi konfigurowalnych pól i innych nowych opcji oraz dokonał dalszych czystek kodu i skorzystał z nowego interfejsu readproc. Opcje "b" i "n" zostały przekazane przez George'a Bonsera <george@captech.com> dla CapTech IT Services. Obecnym opiekunem jest Michael K. Johnson <johnsonm@redhat.com>. Zgłoszenia błędów wysyłaj do <procps-bugs@redhat.com>.