我们不可能尽善尽美的说明每一项,其他的用到的概率也不大。具体的意思也需要大家自己去尝试。我们下面说一下视图中每一列代表的含义(常用的带*)
列含义 * PID = Process Id 进程唯一标识符 * USER = Effective User Name 用户名 * PR = Priority 优先级 越低越好 rt是运行状态 * NI = Nice Value 调整的优先级 * VIRT = Virtual Image (KiB) 进程使用的虚拟内存。VIRT=SWAP+RES * RES = Resident Size (KiB) 任务使用的非交换物理内存大小b。RES=CODE+DATA * SHR = Shared Memory (KiB) SHR是进程使用的共享内存。共享内存大小,单位kb * S = Process Status 进程状态 取值如下: D - 不可中断的睡眠态。 R – 运行态 S – 睡眠态 T – 被跟踪或已停止 Z – 僵尸态 * %CPU = CPU Usage 任务所使用的CPU时间百分比。 * %MEM = Memory Usage (RES) 任务所使用的CPU时间百分比 * TIME+ = CPU Time, hundredths 全部CPU时间精确到1/100秒 * COMMAND = Command Name/Line 进程名称(命令名/命令行) PPID = Parent Process pid PPID 父进程id UID = Effective User Id 进程所有者的用户id RUID = Real User Id 进程所有者的真实用户id RUSER = Real User Name 进程所有者的真实用户 SUID = Saved User Id SUSER = Saved User Name GID = Group Id 用户组id GROUP = Group Name 用户组 PGRP = Process Group Id 进程组id TTY = Controlling Tty 控制台,有如下: ? 不是从终端启动的 tty1-6 控制台1-6 pty 虚拟终端 pts/ptmx pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。pts/0 斜杠后的数字代表标号 一般pts都是网络连接进来的程序 TPGID = Tty Process Grp Id tty的组 SID = Session Id 回话id nTH = Number of Threads 线程数量 P = Last Used Cpu (SMP) 最后使用的cpu标号 TIME = CPU Time 使用cpu的时间 SWAP = Swapped Size (KiB) 进程使用的虚拟内存中,被换出的大小。 CODE = Code Size (KiB) 可执行代码占用的物理内存大小 DATA = Data+Stack (KiB) 可执行代码以外的部分(数据段+栈)占用的物理内存大小 nMaj = Major Page Faults nMin = Minor Page Faults nDRT = Dirty Pages Count 最后一次写入到现在,被修改过的页面数。 WCHAN = Sleeping in Function 若该进程在睡眠,则显示睡眠中的系统函数名 Flags = Task Flags <sched.h> 任务标志 CGROUPS = Control Groups SUPGIDS = Supp Groups IDs SUPGRPS = Supp Groups Names TGID = Thread Group Id 线程组id ENVIRON = Environment vars vMj = Major Faults delta vMn = Minor Faults delta USED = Res+Swap Size (KiB) 物理内存和使用的交换区大小 nsIPC = IPC namespace Inode nsMNT = MNT namespace Inode nsNET = NET namespace Inode nsPID = PID namespace Inode nsUSER = USER namespace Inode nsUTS = UTS namespace Inode 附录:部分列名称的解释(来源于man top)这里给出英文的原文档,方便大家参考。
3a. DESCRIPTIONS of Fields Listed below are top's available process fields (columns). They are shown in strict ascii alphabetical order. You may customize their position and whether or not they are displayable with the `f' or `F' (Fields Management) interactive commands. 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 provi‐ sions see topic 4c. TASK AREA Commands, SORTING. The fields related to physical memory or virtual memory reference `(KiB)' which is the unsuffixed display mode. Such fields may, however, be scaled from KiB through PiB. That scaling is influenced via the `e' interactive command or established for startup through a build option. 1. %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 a process is multi-threaded and top is not operating in Threads mode, amounts greater than 100% may be reported. You toggle Threads mode with the `H' interactive command. Also for multi-processor environments, 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' inter‐ active command. 2. %MEM -- Memory Usage (RES) A task's currently used share of available physical memory. 3. CGROUPS -- Control Groups The names of the control group(s) to which a process belongs, or `-' if not applicable for that process. Control Groups provide for allocating resources (cpu, memory, network bandwidth, etc.) among installation-defined groups of processes. They enable fine-grained control over allocating, denying, prioritizing, man‐ aging and monitoring those resources. Many different hierarchies of cgroups can exist simultaneously on a sys‐ tem and each hierarchy is attached to one or more subsystems. A subsys‐ tem represents a single resource. Note: The CGROUPS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum 512 characters). Even so, such variable width fields could still suffer truncation. See topic 5c. SCROLLING a Window for additional information on accessing any truncated data. 4. CODE -- Code Size (KiB) The amount of physical memory devoted to executable code, also known as the Text Resident Set size or TRS. 5. COMMAND -- Command Name or Command Line Display the command line used to start a task or the name of the associ‐ ated 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 brackets, as in this example: [kthreadd] This field may also be impacted by the forest view display mode. See the `V' interactive command for additional information regarding that mode. Note: The COMMAND field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum 512 characters). Even so, such variable width fields could still suffer truncation. This is especially true for this field when command lines are being displayed (the `c' interactive command.) See topic 5c. SCROLLING a Window for additional information on accessing any truncated data. 6. DATA -- Data + Stack Size (KiB) The amount of physical memory devoted to other than executable code, also known as the Data Resident Set size or DRS. 7. ENVIRON -- Environment variables Display all of the environment variables, if any, as seen by the respec‐ tive processes. These variables will be displayed in their raw native order, not the sorted order you are accustomed to seeing with an unquali‐ fied `set'. Note: The ENVIRON field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum 512 characters). Even so, such variable width fields could still suffer truncation. This is especially true for this field. See topic 5c. SCROLLING a Window for additional information on accessing any truncated data. 8. 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>. 9. GID -- Group Id The effective group ID. 10. GROUP -- Group Name The effective group name. 11. 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 dis‐ patch-ability. 12. 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). 13. PGRP -- Process Group Id Every process is member of a unique process group which is used for dis‐ tribution of signals and by terminals to arbitrate requests for their input and output. When a process is created (forked), it becomes a mem‐ ber of the process group of its parent. By convention, this value equals the process ID (see PID) of the first member of a process group, called the process group leader. 14. PID -- Process Id The task's unique process ID, which periodically wraps, though never restarting at zero. In kernel terms, it is a dispatchable entity defined by a task_struct. This value may also be used as: a process group ID (see PGRP); a session ID for the session leader (see SID); a thread group ID for the thread group leader (see TGID); and a TTY process group ID for the process group leader (see TPGID). 15. PPID -- Parent Process Id The process ID (pid) of a task's parent. 16. PR -- Priority The scheduling priority of the task. If you see `rt' in this field, it means the task is running under real time scheduling priority. Under linux, real time priority is somewhat misleading since tradition‐ ally the operating itself was not preemptible. And while the 2.6 kernel can be made mostly preemptible, it is not always so. 17. RES -- Resident Memory Size (KiB) The non-swapped physical memory a task is using. 18. RUID -- Real User Id The real user ID. 19. RUSER -- Real User Name The real user name. 20. S -- Process Status The status of the task which can be one of: D = uninterruptible sleep R = running S = sleeping T = stopped by job control signal t = stopped by debugger during trace 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. 21. SHR -- Shared Memory Size (KiB) The amount of shared memory available to a task, not all of which is typ‐ ically resident. It simply reflects memory that could be potentially shared with other processes. 22. SID -- Session Id A session is a collection of process groups (see PGRP), usually estab‐ lished by the login shell. A newly forked process joins the session of its creator. By convention, this value equals the process ID (see PID) of the first member of the session, called the session leader, which is usually the login shell. 23. SUID -- Saved User Id The saved user ID. 24. SUPGIDS -- Supplementary Group IDs The IDs of any supplementary group(s) established at login or inherited from a task's parent. They are displayed in a comma delimited list. Note: The SUPGIDS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum 512 characters). Even so, such variable width fields could still suffer truncation. See topic 5c. SCROLLING a Window for additional information on accessing any truncated data. 25. SUPGRPS -- Supplementary Group Names The names of any supplementary group(s) established at login or inherited from a task's parent. They are displayed in a comma delimited list. Note: The SUPGRPS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum 512 characters). Even so, such variable width fields could still suffer truncation. See topic 5c. SCROLLING a Window for additional information on accessing any truncated data. 26. SUSER -- Saved User Name The saved user name. 27. SWAP -- Swapped Size (KiB) The non-resident portion of a task's address space. 28. TGID -- Thread Group Id The ID of the thread group to which a task belongs. It is the PID of the thread group leader. In kernel terms, it represents those tasks that share an mm_struct. 29. 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 have used. You toggle Cumulative mode with `S', which is both a command-line option and an interactive command. See the `S' interactive command for additional information regarding this mode. 30. TIME+ -- CPU Time, hundredths The same as TIME, but reflecting more granularity through hundredths of a second. 31. TPGID -- Tty Process Group Id The process group ID of the foreground process for the connected tty, or -1 if a process is not connected to a terminal. By convention, this value equals the process ID (see PID) of the process group leader (see PGRP). 32. 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 ter‐ minal, in which case you'll see `?' displayed. 33. UID -- User Id The effective user ID of the task's owner. 34. USED -- Memory in Use (KiB) This field represents the non-swapped physical memory a task has used (RES) plus the non-resident portion of its address space (SWAP). 35. USER -- User Name The effective user name of the task's owner. 36. VIRT -- Virtual Memory Size (KiB) 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 and pages that have been mapped but not used. 37. 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. By displaying this field, top's own working set could be increased by over 700Kb, depending on the kernel version. Should that occur, your only means of reducing that overhead will be to stop and restart top. 38. nDRT -- Dirty Pages Count The number of pages that have been modified since they were last written to auxiliary storage. Dirty pages must be written to auxiliary storage before the corresponding physical memory location can be used for some other virtual page. 39. nMaj -- Major 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 auxiliary storage access is involved in making that page available. 40. nMin -- Minor Page Fault count The number of minor 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 minor page fault does not involve auxiliary storage access in making that page available. 41. nTH -- Number of Threads The number of threads associated with a process. 42. nsIPC -- IPC namespace The Inode of the namespace used to isolate interprocess communication (IPC) resources such as System V IPC objects and POSIX message queues. 43. nsMNT -- MNT namespace The Inode of the namespace used to isolate filesystem mount points thus offering different views of the filesystem hierarchy. 44. nsNET -- NET namespace The Inode of the namespace used to isolate resources such as network devices, IP addresses, IP routing, port numbers, etc. 45. nsPID -- PID namespace The Inode of the namespace used to isolate process ID numbers meaning they need not remain unique. Thus, each such namespace could have its own `init' (PID #1) to manage various initialization tasks and reap orphaned child processes. 46. nsUSER -- USER namespace The Inode of the namespace used to isolate the user and group ID numbers. Thus, a process could have a normal unprivileged user ID outside a user namespace while having a user ID of 0, with full root privileges, inside that namespace. 47. nsUTS -- UTS namespace The Inode of the namespace used to isolate hostname and NIS domain name. UTS simply means "UNIX Time-sharing System". 48. vMj -- Major Page Fault Count Delta The number of major page faults that have occurred since the last update (see nMaj). 49. vMn -- Minor Page Fault Count Delta The number of minor page faults that have occurred since the last update (see nMin).