原文地址:http://www.php100.com/html/webkaifa/Linux/2010/1209/6997.html
top命令是linux下常用的系统分析工具,它能够实时显示系统中各个进程的资源占用状况,类似于Windows中的任务管理器。
1.top命令详解
在console中输入top命令后,得到的结果如下:
top - 10:09:14 up 2 min, 2 users, load average: 1.22, 0.86, 0.35 Tasks: 169 total, 2 running, 167 sleeping, 0 stopped, 0 zombie Cpu(s): 3.8%us, 1.0%sy, 0.0%ni, 94.1%id, 1.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 502048k total, 495576k used, 6472k free, 23140k buffers Swap: 1015800k total, 8k used, 1015792k free, 146060k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1849 root 20 0 149m 31m 7992 S 4.3 6.5 0:04.84 Xorg 2435 root 20 0 837m 43m 28m R 1.7 8.9 0:01.37 konsole ... |
第一行:任务队列信息(与uptime 命令的执行结果相同)
10:09:14 当前时间 2 min系统运行时间,格式为时:分 2 users当前登录用户数 load average: 1.22, 0.86, 0.35系统负载,即任务队列的平均长度(三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值) |
第二、三行:进程和 CPU的信息。当系统有多个CPU 时,这些内容可能会超过两行。
169 total 进程总数 2 running 正在运行的进程数 167 sleeping 睡眠的进程数 0 stopped 停止的进程数 0 zombie 僵尸进程数 3.8% us 用户空间占用CPU百分比 1.0% sy 内核空间占用CPU百分比 0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比 94.1% id 空闲CPU百分比 1.0% wa 等待输入输出的CPU时间百分比 0.0% hi 0.0% si 0.0%st |
第四、五行:内存信息
502048k total 物理内存总量 495576k used 使用的物理内存总量 6472k free 空闲内存总量 23140k buffers 用作内核缓存的内存量 1015800k total 交换区总量 8k used 使用的交换区总量 1015792k free 空闲交换区总量 146060k cached 缓冲的交换区总量 |
第六行:进程信息
PID: 进程标识号 USER: 进程所有者的用户名 PR: 进程的优先级 NI: 进程的优先级别数值(负值表示高优先级,正值表示低优先级) VIRT: 进程占用的虚拟内存值(单位kb,VIRT=SWAP+RES) RES: 进程占用的、未被换出的物理内存值(单位kb,RES=CODE+DATA) SHR: 进程使用的共享内存值(单位kb) S: 进程的状态(D=不可中断的睡眠状态,N=进程优先级为负值,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) %CPU: 该进程占用的CPU使用率 %MEM: 进程占用物理内存的百分比 TIME+: 进程占用CPU的总时间(单位1/100秒) Command: 进程的启动命令名称 |
注:默认情况下TOP命令仅显示比较重要的 PID、USER、PR等列,可以通过下面的快捷键来更改显示内容
通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。
可显示的其他进程信息如下:
PPID 父进程id RUSER Real user name UID 进程所有者的用户id GROUP 进程所有者的组名 TTY 启动进程的终端名 P 最后使用的CPU,仅在多CPU环境下有意义 TIME 进程使用的CPU时间总计,单位秒 SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。 CODE 可执行代码占用的物理内存大小,单位kb DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb nFLT 页面错误次数 nDRT 最后一次写入到现在,被修改过的页面数。 WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 Flags 任务标志,参考 sched.h |
2.top命令参数
top [-] [d] [p] [q] [C] [S] [s] [n]
d 指定每两次屏幕信息刷新之间的时间间隔(单位:s) p 通过指定监控进程ID 来仅仅监控某个进程的状态 q 该选项将使top 没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top 将以 尽可能高的优先级运行 S 指定累计模式 s 使top 命令在安全模式中运行。这将去除交互命令所带来的潜在危险。 i 使top 不显示任何闲置或者僵死进程。 c 显示整个命令行而不只是显示命令名 |
3.top交互命令
在top 命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了s 选项, 其中一些命令可能会被屏蔽。
h 显示帮助画面,给出一些简短的命令总结说明 k 终止一个进程。 i 忽略闲置和僵死进程。这是一个开关式命令。 q 退出程序 r 重新安排一个进程的优先级别 S 切换到累计模式 s 改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s f或者F 从当前显示中添加或者删除项目 o或者O 改变显示项目的顺序 l 切换显示平均负载和启动时间信息 m 切换显示内存信息 t 切换显示进程和CPU状态信息 c 切换显示命令名称和完整命令行 M 根据驻留内存大小进行排序 P 根据CPU使用百分比大小进行排序 T 根据时间/累计时间进行排序 W 将当前设置写入~/.toprc文件中 |