Top
Top on süsteemi jälgimise utiliit, mis pakub kasutajale süsteemiressursside oleku ülevaadet, sealhulgas põhjalikku reaalajalist infot süsteemi tuuma poolt käideldavate tegumite ning protsesside kohta. Lihtsamlt öeldes, top programm ütleb sulle seda, millega su arvuti tegeleb vt Juergen's Linux Blog. Laadi, kuidas ja milline info parasjagu kuvatakse, on võimalik spetsiaalsete võtmete ning käskude abil hõlpsasti kohandada. Programm võimaldab mõningast programmipärist interaktiivset protsesside haldamist, kuid selle võimalused on hoopis avaramad kasutades programmiväliseid liideseid ja konfiguratsiooni võimalusi. Omasuguste utiliitide seas on top sõsara ps-i kõrval (selle suurim erinevus top-iga võrreldes on realajalise monitooringu mittetoetamine) üks väärikamaid ja vanimaid olijaid ning on seetõttu paljudes unixilaadsetes süsteemides vaikimisi kasutusel. Tänaseks on programm tootnud lugematul arvul uusi ja iseseisvaid võsukesi, mis ometi ei sega esiisal jäämast süsteemiadministraatorite südamete püsikundeks.
Top sisaldub tarkvarapeketis procps
Autor: Kristjan Kool, AK 32
Käivitamine
Utiliidi käivitamiseks käsureal kasutatakse samanimelist käsku
top
TOP struktuur ja mõisted
Programmis navigeerimiseks on oluline meeles pidada esiti kaks kõige olulisemat käsku, need on "h" (või "?"), mis on abiks kui vajate abi ning "q", mis võimaldab rakendusest väljuda. Sisenemisel top'i kuvatakse monitorile pilt, mis on sarnane ülaltoodud visuaalsele näitele. Sisuliselt jagatakse ekraan neljaks osaks (järjestatuna ülevalt alla):
Üldandmete sektsioon (summary area)
Sõnumi ja käsuviip (message/prompt Line)
Veerupäised (columns header)
Monitooritavad protsessi parameetrid ehk - nagu ma neid ülalpool nimetan - "veerupäised" moodustavad top utiliidi selgroo, kuna nende abil on erinevaid protsesse võimalik üksteisega võrrelda, neid sorteerida, tuvastada anomaaliaid jne. Vaikimisi on protsessid ülevalt alla sorteeritud protsessori koormatuse (CPU usage) järgi. Aktiivsemad protsessid on nimekirjas alati üleval pool.
Tervikliku loendi olemasolevatest parameetritest saab kui kasutada interaktiivset käsku "o" (order fields). Lisaks nimekirjale võib sellelt leheküljelt leida informatsiooni parameetrite järjekorra ning prioriteetide kohta. Sama informatsioon saab kätte ka käsuga "field select" (mõlemast käsust pikemalt all pool), tulemuseks kuvatakse lehe terminaliakna ülemisele reale parasjagu kehtiva parameetritekonfiguratsiooni järgi moodustatud sõne (current fields string), mis võib välja näha näiteks selline:
Antud 26st tähest on igaüks seotud ühe kindla monitooritava parameetriga. Suured tähed tähistavad seda, et antud parameeter on fookuses ning selle väärtusi kuvatakse tegumitabeli graafilises liideses (vastavalt akna laiusele järjekorras alustades vasakult).
Monitooritavate parameetrite lühikirjeldused (descriptions of fileds)
Siinkohal nimetan ja kirjeldan lühidalt top programmi poolt pakutavate protsesside parameetreid, võttes aluseks nende parameetrite kokkuleppelise tähistuse.
a: PID -- Protsessi ID
Tegumi unikaalne protsessi ID (tuvastuskood), mis perioodiliselt küll kordub, ent kunagi ei alga uuesti nullist.
b: PPID -- Vanemprotsessi ID (parent process Is)
Tegumi vanemprotsessi ID. Vanemprotsessi on mõnel pool nimetatud ka emaprotsessiks
c: RUSER -- Tegelik kasutajanimi (real user name)
Tegumi omaniku tegelik kasutajanimi
d: UID -- Kasutaj ID (user Id)
Tegumi omaniku efektiivne kasutaja ID
e: USER -- Kasjutajanimi (user name)
Tegumi omaniku efektiivne kasutajanimi
f: GROUP -- Grupi nimi (group name)
Tegumi omaniku efektiivne grupinimi
g: TTY -- Juhtterminal (controlling tty)
Juhtterminali nimi. Selleks on tavaliselt seade (serial port, pty), kust protsess alguse saab ja mida ta kasutab sisendiks või väljundiks. Kuigi, tegum ei pruugi olla seotud terminaliga, sellisel juhul kuvatakse "?"
h: PR -- Prioriteet (priority)
Tegumi prioriteet
i: NI -- tähtsuse väärtus(nice value)
Tegumi tähtsuse väärtus. Negatiivne tähtsuse väärtus tähendab kõrgemat prioriteet ja vastupidi. Null väärtus tähendab antud juhul, et prioriteetsust tegumi täideviimise (töötluse) juures ei määrata
j: P -- Viimati kasutatud protsessor (last used CPU (SMP))
Number tähistab viimati kasutatud protsessorit. Tõelises SMP keskkonnas muutub see üsna tihti, kuna tuum kasutab sihilikult nõrka afiinsust (vastavust, ühendust). Juba top-i jooksutamine või murda afiinsuse ning põhjustada rohkem protsesside protsessorite vahetust (lisa portsessoriaja nõude tõttu).
k: %CPU -- Protsessori kasutatus (koormatus) (CPU usage)
Tegumile kuuluv protsessoriaeg alates viimasest värskendusest (update) väljendatuna protsentides kogu protsessoriaja suhtes. Tõelise SMP keskkonna puhul, kui "Irix režiim" on välja lülitatud (off), siis top jätkab opereerimist "Solarise režiimis" , kus tegumi protsessori kasutatus jagatakse protsessorite koguarvuga. Ümberlülitus toimub interaktiivse käsi I abil.
l: TIME -- Protsessoriaeg (CPU Time)
Tegumi protsessoriaeg kokku alates selle algusest. Kumulatiivne režiimi (Cumulative mode) aktiiveerimise lisatakse iga protsessoriajale ka kõikide lõpetatud tütarprotsesside kasutatud protsessoriaeg. Ümbrlülitamine kahe režiimi vahel toimub interaktiivse käsuga "S"
m: TIME+ -- Protsessoriaeg sajandikes (CPU Time, hundredths)
Sama, mis 'TIME', kuid selle reaktsiooniaeg on oluliselt väiksem.
n: %MEM -- Mälu kasutus (memory usage (RES))
Tegumid, mis kasutvad parasjagu vaba jagatud füüsilist mälu
o: VIRT -- Virtual Image (kb)
Tegumi poolt kasutatud virtaalmälu maht. See sisaldab endas kogu koodi, andmeid ning jagatud teeke. (NB: kui defineerida keskkonnamuutuja STATSIZE=1, siis VIRT arvutatakse /proc/#/state "VmSize" parameetri (välja) abil)
VIRT = SWAP + RES
p: SWAP -- Saalemälu maht (nimetatud ka virtuaalmäluks)(swapped size) (kb)
Tegumite saalealalt lisaks võetud virtuaalmälu kogu virtuaalmälu hulgast (VIRT)
q: RES -- Residendi maht (resident size)(kb)
Tegumi poolt kasutatud mitte-saaletud füüsiline mälu.
RES = CODE + DATA
r: CODE -- koodi maht (code size) (kb)
'text resident set' maht elik TRS.
s: DATA -- adnmete+hoidla maht (data+stack size) (kb)
'data resident set' maht elik DRS.
t: SHR -- jagatud mälu maht (shared Mem size) (kb)
Tegumi poolt kasutatud jagatud mälu maht
u: nFLT -- Lehtede vigade arv (Page Fault count)
Oluliste lehted vigade arv, mis on tegumil esinenud. See tekib, kui protsess püüab lugeda või kirjutada virtuaalset lehte, mis ei ole sel hetkel tema aadressruumis.
v: nDRT -- Räpaste lehtede arv (dirty Pages count)
Lehtede arv, mis on muudetud peale seda, kui need on viimaskord kettale salvestatud. Räpased lehed tuleb kirjtada kettale enne, kui vastav füüsiline mälu asukoht võetakse kasutusele mõne teise virtaalse lehe tarbeks.
w: S -- Protsessi staatus (process Status9
Tegumi staatus võib olla: D = katkematult uinunud R = töös S = uinunud T = katkestatud või lõpetatud Z = zombi
NB! Tegumid, mis on kirjeldatud kui töös, peaksid tegelikult tähendama "valmisolekut tööks" (põhjendused on minu jaoks ebaselge, vabandan).
x: Command -- Käsurida või programmi nimi (Command line or Program name)
Kuvab käsure, millega tegum on käivitatud või seotud programmi nime. Interaktiivne käsk kahe väljundi vaheliseks ümberlülitamiseks on "c".
KUi valitud on käsurea kuva, siis käsureata protsesside puhul näidatakse (nagu kerneli lõimed) samas kohas sulgudesse paigutatud seotud programmi nimie, näiteks (mdrecoveryd)
y: WCHAN -- uinunud kus funktsioon (Sleeping in function)
Sõltuvalt kerneli 'System.map'-ist , see väli (parameeter) näitab kerneli funktsiooni nime või aadressit, kus antud tegum parasjagu pikutab. field will show the name or the address of the kernel function in which the task is currently sleeping. Töös olevatel tegumitel on antud veerus kriips "-"
NB! antud välja kuvamine võib tõsta oluliselt top-i koormust!
z: Flags -- Tegumi märgistus (Task Flags)
Antud veerg näitab tegumite reaalajalist kuuteistkümnendüsteemis märgistatust (nullid, kui ei ole). Antud märgistus on ametlikud dokumneteeritud asukohas <linux/sched.h>. Vähem formaalsemat infot võib leida 'Fields select' and 'Order fields' käskude kuvamisel.
tegumitabel (task area)
TOP kasutusjuhised
Toimetamine käsureal
Käsurea süntaks (struktuur) näeb välja selline:
top -hv | -bcHisS -d viivitus(delay) -n kordused (iterations) -p protsessi number (pid) [,pid...]
Käsurea võtmete (nimetatud ka suvanditeks suvanditeks) selgitused maakeeles:
-b : pakktöötluse režiimi käivitamine
Käivitab top-i pakktöötluse režiimis, mis võib olla mõistlik, kui programmi väljund on tarvis saata teise rakendusse või faili. NB! pakktöötlusele omaselt ei tunnista antud režiim hilisemaid käske ning jätkab tööd seni, kuni korduste arv, mis '-n' võtme abil on määratud, on ümber või protsess on 'kill' käsuga peatatud.
-c : Käsu (Command) parameetri sisu ümberlülitamine (toggle)
Kui varem näidati Käsu parameetri all käsu nime, siis pärast "-c" rakendamist näidatakse seal samas programmi nime ning vastupidi.
-d : Viivituse ajaline intervall. Süntaks: -d ss.tt (s nagu sekundid.t nagu (tenths) kümnendikud)
Selle võtme abil määratakse värskendamise (refresh) välde, esilagne väärtus on määratud, kas spetsiaalses konfiguratsiooni failis või kohaldatakse vaikeseade väärtust (näiteks 3 sekundit). Töötavas programmis saab antud parameetreid muuta interaktiivsete käskude abil "d" või "s".
-h : Abiinfo kuvamine
Sisestades käsureale "top -h", kuvatakse teile vastuseks top paketi (või teegi) versioon ning selle top programmi käivatmiseks vajalik süntaks (viidatud üleval).
-H : Üksikute lõimude (Threats) näitamise ja mittenäitamise ümberlülitamine
Käivitab top'i viimasena meelde jäetud 'H' vastandi. Kui lüliti on aktiivne (On), siis kuvatakse kõik protsessi üksikud lõimud eraldi. Kui mittaktiivne (Off), siis kuvatakse ühe protsessi lõimud koos. Töörežiimis toimib sama lülituskäskäsuna "H"
-i : Mittetöötavate (Idle) protsesside näitamise ja mittenäitamise ümberlülitamine
Töörežiimis võib samade tulemuste saavutamiseks pruukida käsku "i"
-n : Kordusteliimiit. Süntaks: -n number
Sätestab maksimaalse kordustearvu (nimetatud ka kaadriteks), mis top peab sooritama, et oma töö lõpetada
-u : Süsteemimonitoorimine kasutajate (user) kaupa. Süntaks: -u kasutaja nimi (või kasutaja ID)
kasutamiseks efektiivse UID ja olemasoleva kasutaja protsesside monitoorimiseks
-U : Sama, mis -u, ainult et see oskab opereerida ka päris -, efektiivse -, salvestatud - ja failisüsteemi- UID-ga
NB! autorile ei ole see teema päri selge, mistõttu selgitavad märkused on teretulnud!
-p : Kindlate protsesside monitoorimine. Süntaks: -pN1 -pN2 ... or -pN1, N2 [,...]
Antud võtme abil võib monitoorida korraga kuni 20 protsessi. Antud käsku saab kasutada ainult käsureal, tavalisse režiimis naasmiseks võib kasutada interaktiivset käsku "="
-s : Turvarežiimi sisenemine
Käivitab top turvarežiimis, isegi root'i jaoks. Antud režiim on oluliselt paremini süsteemi konfiguratsiooni faili poolt kontrollitud.
-S : Kumulatiivse ajarežiimi ümberlülitamine (sisse ja välja)
Kui kumulatiivne režiim on aktiivne (On), siis iga protsessi juures kuvatakse tema ning tema "surnud" laste poolt kasutatud protsessiaeg. Vastav interaktiivne käsk on samuti "S".
-v : Versioon ja käsurea süntaksi kuvamine
sisuliselt sama, mis -h, ehk näitab paketi versiooni ning kuvab programmi käitlemise ABC
Interaktiivsed trikid
Nagu ülapool juba mainitud, siis võimaldab top teostada mitmeid olulisi operatsioone interaktiivselt. Õppimiseks on selline võimalus väga hea, kuid suuremate uuringute tarbeks tasuks kaaluda top sisenimist turvarežiimis (top -s). Interaktiivsed käsud jaotuvad suures plaanis kahte rühme, neist esimesi nimetatakse globaalseteks ning teisi - vastavalt ülalpool viidatud sisusektsioonidele - lokaalseteks käskudeks.
Globaalsed käsud
<Enter> or <Space> :värskendus "?" or "h" :Abi "=" :Väljumine tegumi piirangutest "A" :Alternate_Display_Mode_toggle "B" :Bold_Disable/Enable_toggle "d" or "s" :Change_Delay_Time_interval // nõutav on sisestada aeg "G" :Choose_Another_Window/Field_Group "I" :Irix/Solaris_Mode_toggle "u" :select a user "U" :select a user "k" :Kill_a_task // nõutav taski nimi või ID "q" :Väljumine "r" :Renice_a_Task // nõutav PID ja nice väärtus "W" :Write_the_Configuration_File "Z" :Change_Color_Mapping
Lokaalsed käsud: üldandmete sektsioon
The summary area interactive commands are always available in both full-screen mode and alternate-display mode. They affect the beginning lines of your display and will determine the position of messages and prompts.
These commands always impact just the �current' window/field group. See topic 4. ALTERNATE-DISPLAY Mode and the 'G' interactive command for insight into �current' windows and field groups. �l� :Toggle_Load_Average/Uptime -- On/Off
This is also the line containing the program name (possibly an alias) when operating in full-screen mode or the �current' window name when operating in alternate-display mode.
�m� :Toggle_Memory/Swap_Usage -- On/Off
This command affects two summary area lines.
�t� :Toggle_Task/Cpu_States -- On/Off
This command affects from 2 to many summary area lines, depending on the state of the '1' toggle and whether or not top is running under true SMP.
�1� :Toggle_Single/Separate_Cpu_States -- On/Off
This command affects how the 't' command's Cpu States portion is shown. Although this toggle exists primarily to serve massively-parallel SMP machines, it is not restricted to solely SMP environments.
When you see 'Cpu(s):' in the summary area, the '1' toggle is On and all cpu information is gathered in a single line. Otherwise, each cpu is displayed separately as: 'Cpu0, Cpu1, ...'
Note: If the entire summary area has been toggled Off for any window, you would be left with just the message line. In that way, you will have maximized available task rows but (temporarily) sacrificed the program name in full-screen mode or the �current' window name when in alternate-display mode.
3c. TASK Area Commands
The task area interactive commands are always available in full-screen mode.
The task area interactive commands are never available in alternate-display mode if the �current' window's task display has been toggled Off (see topic 4. ALTERNATE-DISPLAY Mode).
APPEARANCE of task window The following commands will also be influenced by the state of the global 'B' (bold disable) toggle. �b� :Bold/Reverse_toggle
This command will impact how the 'x' and 'y' toggles are displayed. Further, it will only be available when at least one of those toggles is On.
�x� :Column_Highlight_toggle
Changes highlighting for the current sort field. You probably don't need a constant visual reminder of the sort field and top hopes that you always run with 'column highlight' Off, due to the cost in path-length.
If you forget which field is being sorted this command can serve as a quick visual reminder.
�y� :Row_Highlight_toggle
Changes highlighting for "running" tasks. For additional insight into this task state, see topic 2a. DESCRIPTIONS of Fields, Process Status.
Use of this provision provides important insight into your system's health. The only costs will be a few additional tty escape sequences.
�z� :Color/Monochrome_toggle
Switches the �current' window between your last used color scheme and the older form of black-on-white or white-on-black. This command will alter both the summary area and task area but does not affect the state of the 'x', 'y' or 'b' toggles.
CONTENT of task window �c� :Command_Line/Program_Name_toggle
This command will be honored whether or not the 'Command' column is currently visible. Later, should that field come into view, the change you applied will be seen.
�f� and �o� :Fields_select or Order_fields
These keys display separate screens where you can change which fields are displayed and their order. For additional information on these interactive commands see topic 2b. SELECTING and ORDERING Columns.
�H� :Threads_toggle
When this toggle is On, all individual threads will be displayed. Otherwise, top displays a summation of all threads in a process.
�S� :Cumulative_Time_Mode_toggle
When 'Cumulative mode' is On, each process is listed with the cpu time that it and its dead children have used.
When Off, programs that fork into many separate tasks will appear less demanding. For programs like 'init' or a shell this is appropriate but for others, like compilers, perhaps not. Experiment with two task windows sharing the same sort field but with different 'S' states and see which representation you prefer.
After issuing this command, you'll be informed of the new state of this toggle. If you wish to know in advance whether or not 'Cumulative mode' is in effect, simply ask for help and view the window summary on the second line.
�u� :Show_Specific_User_Only
You will be prompted to enter the name of the user to display. Thereafter, in that task window only matching User ID's will be shown, or possibly no tasks will be shown.
Later, if you wish to monitor all tasks again, re-issue this command but just press <Enter> at the prompt, without providing a name.
SIZE of task window �i� :Idle_Processes_toggle
Displays all tasks or just active tasks. When this toggle is Off, idled or zombied processes will not be displayed.
If this command is applied to the last task display when in alternate-display mode, then it will not affect the window's size, as all prior task displays will have already been painted.
�n� or �#� :Set_Maximum_Tasks
You will be prompted to enter the number of tasks to display. The lessor of your number and available screen rows will be used.
When used in alternate-display mode, this is the command that gives you precise control over the size of each currently visible task display, except for the very last. It will not affect the last window's size, as all prior task displays will have already been painted.
Note: If you wish to increase the size of the last visible task display when in alternate-display mode, simply decrease the size of the task display(s) above it.
SORTING of task window For compatibility, this top supports most of the former top sort keys. Since this is primarily a service to former top users, these commands do not appear on any help screen. command sorted field supported A start time (non-display) No M %MEM Yes N PID Yes P %CPU Yes T TIME+ Yes
Before using any of the following sort provisions, top suggests that you temporarily turn on column highlighting using the 'x' interactive command. That will help ensure that the actual sort environment matches your intent.
The following interactive commands will only be honored when the current sort field is visible. The sort field might not be visible because: 1) there is insufficient Screen Width 2) the 'f' interactive command turned it Off �<� :Move_Sort_Field_Left
Moves the sort column to the left unless the current sort field is the first field being displayed.
�>� :Move_Sort_Field_Right
Moves the sort column to the right unless the current sort field is the last field being displayed.
The following interactive commands will always be honored whether or not the current sort field is visible. �F� or �O� :Select_Sort_Field
These keys display a separate screen where you can change which field is used as the sort column.
If a field is selected which was not previously being displayed, it will be forced On when you return to the top display. However, depending upon your screen width and the order of your fields, this sort field may not be displayable.
This interactive command can be a convenient way to simply verify the current sort field, when running top with column highlighting turned Off.
�R� :Reverse/Normal_Sort_Field_toggle
Using this interactive command you can alternate between high-to-low and low-to-high sorts.
Note: Field sorting uses internal values, not those in column display. Thus, the TTY and WCHAN fields will violate strict ASCII collating sequence.
3d. COLOR Mapping
When you issue the 'Z' interactive command, you will be presented with a separate screen. That screen can be used to change the colors in just the �current' window or in all four windows before returning to the top display.
Available interactive commands 4 upper case letters to select a target 8 numbers to select a color normal toggles available 'B' :bold disable/enable 'b' :running tasks "bold"/reverse 'z' :color/mono other commands available 'a'/'w' :apply, then go to next/prior <Enter> :apply and exit 'q' :abandon current changes and exit
If your use 'a' or 'w' to cycle the targeted window, you will have applied the color scheme that was displayed when you left that window. You can, of course, easily return to any window and reapply different colors or turn colors Off completely with the 'z' toggle.
The Color Mapping screen can also be used to change the �current' window/field group in either full-screen mode or alternate-display mode. Whatever was targeted when 'q' or <Enter> was pressed will be made current as you return to the top display.
4. ALTERNATE-DISPLAY Mode
4a. WINDOWS Overview
Field Groups/Windows:
In full-screen mode there is a single window represented by the entire screen. That single window can still be changed to display 1 of 4 different field groups (see the 'G' interactive command, repeated below). Each of the 4 field groups has a unique separately configurable summary area and its own configurable task area.
In alternate-display mode, those 4 underlying field groups can now be made visible simultaneously, or can be turned Off individually at your command.
The summary area will always exist, even if it's only the message line. At any given time only one summary area can be displayed. However, depending on your commands, there could be from zero to four separate task displays currently showing on the screen.
Current Window:
The �current' window is the window associated with the summary area and the window to which task related commands are always directed. Since in alternate-display mode you can toggle the task display Off, some commands might be restricted for the �current' window.
A further complication arises when you have toggled the first summary area line Off. With the loss of the window name (the 'l' toggled line), you'll not easily know what window is the �current' window.
4b. COMMANDS for Windows
�-� and �_� :Show/Hide_Window(s)_toggles
The '-' key turns the �current' window's task display On and Off. When On, that task area will show a minimum of the columns header you've established with the 'f' and 'o' commands. It will also reflect any other task area options/toggles you've applied yielding zero or more tasks.
The '_' key does the same for all task displays. In other words, it switches between the currently visible task display(s) and any task display(s) you had toggled Off. If all 4 task displays are currently visible, this interactive command will leave the summary area as the only display element.
- �=� and �+� :Equalize_(re-balance)_Window(s)
The '=' key forces the �current' window's task display to be visible. It also reverses any 'i' (idle tasks) and 'n' (max tasks) commands that might be active.
The '+' key does the same for all windows. The four task displays will reappear, evenly balanced. They will also have retained any customizations you had previously applied, except for the 'i' (idle tasks) and 'n' (max tasks) commands.
- �A� :Alternate_Display_Mode_toggle
This command will switch between full-screen mode and alternate-display mode.
The first time you issue this command, all four task displays will be shown. Thereafter when you switch modes, you will see only the task display(s) you've chosen to make visible.
- �a� and �w� :Next_Window_Forward/Backward
This will change the �current' window, which in turn changes the window to which commands are directed. These keys act in a circular fashion so you can reach any desired �current' window using either key.
Assuming the window name is visible (you have not toggled 'l' Off), whenever the �current' window name loses its emphasis/color, that's a reminder the task display is Off and many commands will be restricted.
- �G� :Choose_Another_Window/Field_Group
You will be prompted to enter a number between 1 and 4 designating the window/field group which should be made the �current' window.
In full-screen mode, this command is necessary to alter the �current' window. In alternate-display mode, it is simply a less convenient alternative to the 'a' and 'w' commands.
�g� :Change_Window/Field_Group_Name
You will be prompted for a new name to be applied to the �current' window. It does not require that the window name be visible (the 'l' toggle to be On).
The interactive commands shown with an asterisk ('*') have use beyond alternate-display mode. �=', 'A', 'G' are always available �a', 'w' act the same when color mapping