Linux top命令详解

发布于 2015-11-04 来源 原文链接

更新于 2016-06-13

Windows下的任务管理器虽然不好用(个人更喜欢Process Explorer些),但也算方便,可以方便的查看进程,CPU,内存...也可以很容易的结束进程

没有图形化界面下的Linux,也有命令可以实现Windows的任务管理器功能,这个命令就是"top",用户可以使用top来对进程排序,结束进程等.

top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,默认5秒刷新一下进程列表,所以类似于 Windows 的任务管理器。

系统整体当下的统计信息

top命令显示的前五行是系统整体的统计信息。

第一行是CPU的信息。当有多个CPU时,这些内容可能会超过两行。eg.

Tasks : 115 total , 1 running , 114 sleeping , 0stopped , 0zombie
Cpu(s) : 16.1% us , 2.0% sy , 0.0% ni , 79.5% id , 1.4% wa , 0.0% hi , 1.0% si

Tasks : 115 total 进程总数
1 running 正在
僵尸进程数
Cpu(s) : 16.1% us 用户空间占用CPU百分比
2.0% sy内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
79.5% id 空闲CPU百分比
1.4% wa 等待输入输出的CPU时间百分比
0.0% hi
0.0% si

最后两行为内存信息。eg.

Mem : 8169876 k total , 7686472 k used , 483404 k free , 35272 k buffers
Swap : 4096532 k total , 160 k used , 4096372 k free , 2477532 k cached

Mem : 8169876 ktotal物理内存总量
7686472 k used 使用的物理内存总量
483404 k free 空闲内存总量
35272 k buffers 用作
交换分区总量
160 k used 使用的交换区总量
4096372 k free 空闲交换区总量
2477532 k cached 缓冲的交换区总量。

内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。

进程信息

统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

序号列名含义
PID 进程id
PPID 父进程id
RUSER Realusername
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为?
PR 优先级
NInice 值。负值表示高优先级,正值表示低优先级
P 最后使用的CPU,仅在多CPU环境下有意义
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。

S 进程状态。
D= 不可中断的睡眠状态
R= 运行
S= 睡眠
T= 跟踪/停止
Z= 僵尸进程

COMMAND 命令名/命令行
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
Flags 任务标志,参考sched.h


按指定列来排序

top里可以设置按照某一项来排序,默认的情况下,是按照CPU的使用情况来排序,

M,(注意大写),按内存使用情况排序

P , 根据CPU使用百分比大小进行排序

T, 根据时间/累计时间进行排序。


如何结束进程

输入字母k(小写),然后再输入想要kill的PID

当然你也可直接运行命令,kill PID

top其他用法

top的其他用法,可以在top界面中,输"h",就可以进入到top命令帮助界面