赞
踩
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top命令可以动态显示进程的资源使用情况,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视,它将显示系统中CPU最“敏感”的任务列表,该命令可以按CPU使用、内存使用和执行时间来对任务进行排序,而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。
执行top命令后,默认会出现如下内容:
top – 09:36:15 up 86 days, 5:28, 1 users, load average: 0.02, 0.15, 0.22 Tasks: 194 total, 1 running, 126 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.1% hi, 0.0% si Mem: 2070564k total, 1340828k used, 729736k free, 168636k buffers Swap: 4192924k total, 0k used, 4192924k free, 894080k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 1696 544 468 S 0 0.0 0:05.96 init 2 root 15 -5 0 0 0 S 0 0.0 0:00.00 kthreadd 3 root RT -5 0 0 0 S 0 0.0 0:00.10 migration/0 4 root 15 -5 0 0 0 S 0 0.0 0:00.00 ksoftirqd/0 5 root RT -5 0 0 0 S 0 0.0 0:00.74 watchdog/0 6 root RT -5 0 0 0 S 0 0.0 0:00.16 migration/1 7 root 15 -5 0 0 0 S 0 0.0 0:00.02 ksoftirqd/1
上面的内容,可以分为两部分,第一部分是前5行,是系统整体的统计信息。第二部分是第8行开始的进程信息。我们从上往下依次进行说明:
第二、三行分别为进程和CPU的统计信息:
最后两行为内存信息。内容如下:
序号 列名 含义 a PID 进程id b PPID 父进程id c RUSER Real user name d UID 进程所有者的用户id e USER 进程所有者的用户名 f GROUP 进程所有者的组名 g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ? h PR 优先级 i NI nice值。负值表示高优先级,正值表示低优先级 j P 最后使用的CPU,仅在多CPU环境下有意义 k %CPU 进程使用的CPU的百分比 l TIME 进程使用的CPU时间总计,单位秒 m TIME+ 进程使用的CPU时间总计,单位1/100秒 n %MEM 进程使用的物理内存百分比 o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。 q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA r CODE 可执行代码占用的物理内存大小,单位kb s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb t SHR 共享内存大小,单位kb u nFLT 页面错误次数 v nDRT 最后一次写入到现在,被修改过的页面数。 w S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) x COMMAND 执行的命令 y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 z Flags 任务标志,参考 sched.h
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。
通过按f键可以编辑显示内容,按f键后,会出现下图:
根据图中描述可知:
①当前是按照%CPU这一列来排序的
②可以通过上、下键来导航
③按右键可以选择整个列,然后按上、下键来移动整个列(调整列的显示位置,前移或后移),按回车确定
④按空格键来显示/隐藏该列,带*的是显示,不带*的是不显示
⑤按s键可以将当前列设置为排序列
⑥按q键退出
top命令的格式为:
top [选项]
top命令常用的选项参数有:
选项 | 功能 |
-d | 指定每两次屏幕信息刷新之间的时间间隔,如希望每秒刷新一次,则使用:top -d 1 |
-p | 通过指定PID来仅仅监控某个进程的状态 |
-S | 指定累计模式 |
-s | 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险 |
-i | 使top不显示任何闲置或者僵死的进程 |
-c | 显示整个命令行而不只是显示命令名 |
top //每隔3秒显式所有进程的资源占用情况 top -d 1 //每隔1秒显式所有进程的资源占用情况 top -c //每隔3秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名) top -p 12345 -p 6789//每隔3秒显示pid是12345和pid是6789的两个进程的资源占用情况 top -d 2 -c -p 123456 //每隔2秒显示pid是123456的进程的资源使用情况,并显式该进程启动的命令行参数
【1】过滤用户:在top命令显示中,输入u,然后输入用户名,则可以查看相应的用户进程。如按u键,然后输入tiger,按回车则只显示tiger的进程:
【2】查看各个CPU的使用情况:在top命令下,输入1,可以看到各个CPU的使用情况:
【3】隐藏闲置或僵死的进程:在top命令下,输入i,可以隐藏闲置或僵死的进程,效果跟输入top -i是一样的。
【4】切换内存信息的单位:top命令默认以K为单位显示内存大小,这让人十分抓狂,我们可以通过大写字母E来切换内存信息区域的显示单位。小写字母m可以控制是否显示内存信息。
【5】切换进程列表中的内存显示单位:在进程列表中,内存的单位默认也是KB,我们可以通过小写字母e来切换单位。
【6】粗体显示排序的列:由前文可知,f键可以改变排序的列,但界面中看不出是以哪个列来排序的,可以通过小写字母x来粗体显示当前排序的列:
【7】快速切换排序的列:虽然可以通过f键来修改排序的列,但还有一些快速切换排序列的方式:比如大写字母M以%MEM列排序,大写字母N以PID列排序,大写字母P以%CPU列排序,大写字母T以TIME+列排序。大写字母R可以将当前的排序结果反转。
【8】显示完整的执行命令:默认COMMAND列只显示程序的名字,并不包含程序的路径,可以通过小写字母c来显示完整的执行命令(效果跟top -c相同):
【9】显示帮助文档: 输入h进入top命令的帮助文档。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。