Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。可能会有人不知道top出来的信息到底是什么意思,下面我就针对此问题做个解释:
[attach]8509[/attach]
统计信息区
前5行是系统整体的统计信息
第1行是任务队列信息,其内容如下:
[table=263][tr][td]13[size=10pt]:[size=10pt]57[size=10pt]:[size=10pt]59
[/size][/size][/size][/size][/td][td]当前时间[size=10pt]
[/size][/td][/tr][tr][td]up 6 days
[/td][td]系统已运作时间[size=10pt]
[/size][/td][/tr][tr][td]1 user
[/td][td]当前登录用户数[size=10pt]
[/size][/td][/tr][tr][td]load average: 0.02, 0.02, 0.00
[/td][td]系统负载[size=10pt]
[/size][/td][/tr][/table]
[align=left]第2、3行为进程和CPU的信息,当有多个CPU时,这些内容可能会超出两行,其内容如下:[/align]
[table=336][tr][td][align=left]Tasks: 131 total[/align]
[/td][td][align=left]进程总数[size=10pt][/align]
[/size][/td][/tr][tr][td][align=left]1 running[/align]
[/td][td][align=left]正在运行的进程数[size=10pt][/align]
[/size][/td][/tr][tr][td][align=left]130 sleeping[/align]
[/td][td][align=left]睡眠的进程数[size=10pt][/align]
[/size][/td][/tr][tr][td][align=left]0 stopped[/align]
[/td][td][align=left]停止的进程数[size=10pt][/align]
[/size][/td][/tr][tr][td][align=left]0 zombie[/align]
[/td][td][align=left]僵死进程数[size=10pt][/align]
[/size][/td][/tr][tr][td][align=left]Cpu(s): 0.1% us[/align]
[/td][td][align=left]用户空间占用[size=10pt]CPU[size=10pt]百分比[size=10pt][/align]
[/size][/size][/size][/td][/tr][tr][td][align=left]0.0% sy[/align]
[/td][td][align=left]内核空间占用[size=10pt]CPU[size=10pt]百分比[size=10pt][/align]
[/size][/size][/size][/td][/tr][tr][td][align=left]0.0% ni[/align]
[/td][td][align=left]用户进程空间内改变过优先级的进程占用[size=10pt]CPU[size=10pt]百分比[size=10pt][/align]
[/size][/size][/size][/td][/tr][/table]
[align=left]第4、5行为内存的信息,其内容如下:[/align]
[table=528][tr][td]Mem: 4146380k total
[/td][td]物理内存总量
[/td][/tr][tr][td]2181108k used
[/td][td]使用的物理内存总量
[/td][/tr][tr][td]1965272k free
[/td][td]空闲内存总量
[/td][/tr][tr][td]163960k buffers
[/td][td]用作内核缓存的内存量
[/td][/tr][tr][td]Swap: 6289320k total
[/td][td]交换区总量
[/td][/tr][tr][td]0k used
[/td][td]使用的交换区总量
[/td][/tr][tr][td]6289320k free
[/td][td]空闲交换区总量
[/td][/tr][tr][td]1016960k cached
[/td][td]缓冲的交换区总量
内存中的内容被换出到交换区,而后又被换入到内存,
但使用过的交换区尚未被覆盖,该数值即为这些内容已
存在于内存中的交换区的大小。相应的内存再次被换出时
可不必再对交换区写入。
[/td][/tr][/table]
进程信息区
统计信息区域的下方显示了各个进程的详细信息。其内容如下:
[table=509][tr][td]序号
[/td][td]列名
[/td][td]含义
[/td][/tr][tr][td]a
[/td][td]PID
[/td][td]进程id
[/td][/tr][tr][td]b
[/td][td]PPID
[/td][td]父进程id
[/td][/tr][tr][td]c
[/td][td]RUSER
[/td][td]Real user name
[/td][/tr][tr][td]d
[/td][td]UID
[/td][td]进程所有者的用户id
[/td][/tr][tr][td]e
[/td][td]USER
[/td][td]进程所有者的用户名
[/td][/tr][tr][td]f
[/td][td]GROUP
[/td][td]进程所有者的组名
[/td][/tr][tr][td]g
[/td][td]TTY
[/td][td]启动进程的终端名。不是从终端启动的进程则显示为 ?
[/td][/tr][tr][td]h
[/td][td]PR
[/td][td]优先级
[/td][/tr][tr][td]i
[/td][td]NI
[/td][td]nice值。负值表示高优先级,正值表示低优先级
[/td][/tr][tr][td]j
[/td][td]P
[/td][td]最后使用的CPU,仅在多CPU环境下有意义
[/td][/tr][tr][td]k
[/td][td]%CPU
[/td][td]上次更新到现在的CPU时间占用百分比
[/td][/tr][tr][td]l
[/td][td]TIME
[/td][td]进程使用的CPU时间总计,单位:秒
[/td][/tr][tr][td]m
[/td][td]TIME+
[/td][td]进程使用的CPU时间总计,单位:1/100秒
[/td][/tr][tr][td]n
[/td][td]%MEM
[/td][td]进程使用的物理内存百分比
[/td][/tr][tr][td]o
[/td][td]VIRT
[/td][td]进程使用的虚拟内存总量,单位:kb。VIRT=SWAP+RES
[/td][/tr][tr][td]p
[/td][td]SWAP
[/td][td]进程使用的虚拟内存中,被换出的大小,单位:kb。
[/td][/tr][tr][td]q
[/td][td]RES
[/td][td]进程使用的、未被换出的物理内存大小,单位:kb。RES=CODE+DATA
[/td][/tr][tr][td]r
[/td][td]CODE
[/td][td]可执行代码占用的物理内存大小,单位:kb
[/td][/tr][tr][td]s
[/td][td]DATA
[/td][td]可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位:kb
[/td][/tr][tr][td]t
[/td][td]SHR
[/td][td]共享内存大小,单位:kb
[/td][/tr][tr][td]u
[/td][td]nFLT
[/td][td]页面错误次数
[/td][/tr][tr][td]v
[/td][td]nDRT
[/td][td]最后一次写入到现在,被修改过的页面数。
[/td][/tr][tr][td]w
[/td][td]S
[/td][td]进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
[/td][/tr][tr][td]x
[/td][td]COMMAND
[/td][td]命令名/命令行
[/td][/tr][tr][td]y
[/td][td]WCHAN
[/td][td]若该进程在睡眠,则显示睡眠中的系统函数名
[/td][/tr][tr][td]z
[/td][td]Flags
[/td][td]任务标志,参考 sched.h
[/td][/tr][/table]
[font=Times New Roman]
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。
通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按小写的 o键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F或 O键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R键可以将当前的排序倒转。[/font]
Linux是一套免费使用和自由传播的类Unix操作系统
……