This shows you the differences between two versions of the page.
top [2012/04/12 13:10] k2patel [.toprc] |
top [2020/08/10 02:35] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== TOP ====== | ||
- | command to help understanding system performance. | ||
- | ==== Block on Top ==== | ||
- | |||
- | |||
- | <code bash | Cpu(s) Row> | ||
- | wa = waiting for IO | ||
- | us = userspace | ||
- | sy = system/kernel | ||
- | ni = nice processs | ||
- | id = idle | ||
- | hi = hardware interrupts | ||
- | si = software interrupts | ||
- | </code> | ||
- | |||
- | |||
- | ==== Columns ==== | ||
- | |||
- | Listed below are top's available fields. They are always associated with the letter shown, \\ | ||
- | regardless of the position you may have established for them with the 'o' (Order fields) interactive command. | ||
- | |||
- | Any field is selectable as the sort field, and you control whether they are sorted high-to-low or low-to-high.\\ | ||
- | For additional information on sort provisions see topic 3c. TASK Area Commands. | ||
- | |||
- | <code text | Fields > | ||
- | a: PID -- Process Id | ||
- | The task's unique process ID, which periodically wraps, though never restarting at zero. | ||
- | b: PPID -- Parent Process Pid | ||
- | The process ID of a task's parent. | ||
- | c: RUSER -- Real User Name | ||
- | The real user name of the task's owner. | ||
- | d: UID -- User Id | ||
- | The effective user ID of the task's owner. | ||
- | e: USER -- User Name | ||
- | The effective user name of the task's owner. | ||
- | f: GROUP -- Group Name | ||
- | The effective group name of the task's owner. | ||
- | g: TTY -- Controlling Tty | ||
- | The name of the controlling terminal. This is usually the device (serial port, pty, etc.) | ||
- | from which the process was started, and which it uses for input or output. | ||
- | However, a task need not be associated with a terminal, in which case you'll see '?' displayed. | ||
- | h: PR -- Priority | ||
- | The priority of the task. | ||
- | i: NI -- Nice value | ||
- | The nice value of the task. A negative nice value means higher priority, | ||
- | whereas a positive nice value means lower priority. | ||
- | Zero in this field simply means priority will not be adjusted in determining a task's dispatchability. | ||
- | j: P -- Last used CPU (SMP) | ||
- | A number representing the last used processor. | ||
- | In a true SMP environment this will likely change frequently since the kernel intentionally uses weak affinity. | ||
- | Also, the very act of running top may break this weak affinity and cause more processes to change | ||
- | CPUs more often (because of the extra demand for cpu time). | ||
- | k: %CPU -- CPU usage | ||
- | The task's share of the elapsed CPU time since the last screen update, | ||
- | expressed as a percentage of total CPU time. In a true SMP environment, | ||
- | if 'Irix mode' is Off, top will operate in 'Solaris mode' where a task's cpu usage will be divided by the total number of CPUs. | ||
- | You toggle 'Irix/Solaris' modes with the 'I' interactive command. | ||
- | l: TIME -- CPU Time | ||
- | Total CPU time the task has used since it started. When 'Cumulative mode' is On, | ||
- | each process is listed with the cpu time that it and its dead children has used. | ||
- | You toggle 'Cumulative mode' with 'S', which is a command-line option and an interactive command. | ||
- | See the 'S' interactive command for additional information regarding this mode. | ||
- | m: TIME+ -- CPU Time, hundredths | ||
- | The same as 'TIME', but reflecting more granularity through hundredths of a second. | ||
- | n: %MEM -- Memory usage (RES) | ||
- | A task's currently used share of available physical memory. | ||
- | o: VIRT -- Virtual Image (kb) | ||
- | The total amount of virtual memory used by the task. | ||
- | It includes all code, data and shared libraries plus pages that have been swapped out. | ||
- | (Note: you can define the STATSIZE=1 environment variable and the VIRT will be calculated from the /proc/#/state VmSize field.) | ||
- | |||
- | VIRT = SWAP + RES. | ||
- | p: SWAP -- Swapped size (kb) | ||
- | The swapped out portion of a task's total virtual memory image. | ||
- | q: RES -- Resident size (kb) | ||
- | The non-swapped physical memory a task has used. | ||
- | |||
- | RES = CODE + DATA. | ||
- | r: CODE -- Code size (kb) | ||
- | The amount of physical memory devoted to executable code, also known as the 'text resident set' size or TRS. | ||
- | s: DATA -- Data+Stack size (kb) | ||
- | The amount of physical memory devoted to other than executable code, also known as the 'data resident set' size or DRS. | ||
- | t: SHR -- Shared Mem size (kb) | ||
- | The amount of shared memory used by a task. It simply reflects memory that could be potentially shared with other processes. | ||
- | u: nFLT -- Page Fault count | ||
- | The number of major page faults that have occurred for a task. | ||
- | A page fault occurs when a process attempts to read from or write to a virtual page that is not currently present in its address space. | ||
- | A major page fault is when disk access is involved in making that page available. | ||
- | v: nDRT -- Dirty Pages count | ||
- | The number of pages that have been modified since they were last written to disk. | ||
- | Dirty pages must be written to disk before the corresponding physical memory location can be used for some other virtual page. | ||
- | w: S -- Process Status | ||
- | The status of the task which can be one of: 'D' = uninterruptible sleep 'R' = running 'S' = sleeping 'T' = traced or stopped 'Z' = zombie | ||
- | Tasks shown as running should be more properly thought of as 'ready to run' -- their task_struct is simply represented on the Linux run-queue. | ||
- | Even without a true SMP machine, you may see numerous tasks in this state depending on top's delay interval and nice value. | ||
- | x: Command -- Command line or Program name | ||
- | Display the command line used to start a task or the name of the associated program. | ||
- | You toggle between command line and name with 'c', which is both a command-line option and an interactive command. | ||
- | |||
- | When you've chosen to display command lines, | ||
- | processes without a command line (like kernel threads) will be shown with only the program name in parentheses, | ||
- | as in this example: ( mdrecoveryd ) | ||
- | |||
- | Either form of display is subject to potential truncation if it's too long to fit in this field's current width. | ||
- | That width depends upon other fields selected, their order and the current screen width. | ||
- | |||
- | Note: The 'Command' field/column is unique, in that it is not fixed-width. | ||
- | When displayed, this column will be allocated all remaining screen width | ||
- | (up to the maximum 512 characters) to provide for the potential growth of program names into command lines. | ||
- | y: WCHAN -- Sleeping in Function | ||
- | Depending on the availability of the kernel link map ('System.map'), | ||
- | this field will show the name or the address of the kernel function in which the task is currently sleeping. | ||
- | Running tasks will display a dash ('-') in this column. | ||
- | |||
- | Note: By displaying this field, top's own working set will be increased by over 700Kb. | ||
- | Your only means of reducing that overhead will be to stop and restart top. | ||
- | z: Flags -- Task Flags | ||
- | This column represents the task's current scheduling flags which are expressed in hexadecimal notation and with zeros suppressed. | ||
- | These flags are officially documented in <linux/sched.h>. | ||
- | Less formal documentation can also be found on the 'Fields select' and 'Order fields' screens. | ||
- | </code> | ||
- | |||
- | |||
- | ==== .toprc ==== | ||
- | .toprc is the file you do not need to play with it all the time.\\ | ||
- | Here is my .toprc file.\\ | ||
- | |||
- | |||
- | <code bash | ~/.toprc> | ||
- | |||
- | RCfile for "top with windows" # shameless braggin' | ||
- | Id:a, Mode_altscr=0, Mode_irixps=1, Delay_time=3.000, Curwin=0 | ||
- | Def fieldscur=OQNTKPMehaiWbcdfgJlrsuvyzX | ||
- | winflags=130489, sortindx=13, maxtasks=0 | ||
- | summclr=6, msgsclr=1, headclr=3, taskclr=2 | ||
- | Job fieldscur=ABcefgjlrstuvyzMKNHIWOPQDX | ||
- | winflags=64825, sortindx=0, maxtasks=0 | ||
- | summclr=6, msgsclr=6, headclr=7, taskclr=6 | ||
- | Mem fieldscur=ANOPQRSTUVbcdefgjlmyzWHIKX | ||
- | winflags=64825, sortindx=13, maxtasks=0 | ||
- | summclr=5, msgsclr=5, headclr=4, taskclr=5 | ||
- | Usr fieldscur=ABDECGfhijlopqrstuvyzMKNWX | ||
- | winflags=64825, sortindx=4, maxtasks=0 | ||
- | summclr=3, msgsclr=3, headclr=2, taskclr=3 | ||
- | |||
- | </code> | ||
- | |||
- | |||
- | Playing with color is not advised from interface as it was hard for me :) still you can try using "Z"\\ | ||
- | Here is how i played. | ||
- | |||
- | <code text> | ||
- | |||
- | Select target as upper case letter: | ||
- | S = Summary Data, M = Messages/Prompts, | ||
- | H = Column Heads, T = Task Information | ||
- | Select color as number: | ||
- | 0 = black, 1 = red, 2 = green, 3 = yellow, | ||
- | 4 = blue, 5 = magenta, 6 = cyan, 7 = white | ||
- | |||
- | </code> | ||
- | |||
- | **Curwin=0** Which define which block you are using start the first one as "0". | ||
- | |||
- | **summclr=6, msgsclr=1, headclr=3, taskclr=2** this is the value you can play with with above list of colors. |