1. 作用
动态查看进程的变化,常用来查找最耗CPU资源的进程。
2. 用法
top 【参数】
参数:
-d:后接秒数,就是整个进程界面更新的秒数。默认是5秒;
-b:以批次的方式执行top,通常会搭配数据流重定向来将批处理的结果输出成为文件;
-n:后面接整数数字,与-b搭配使用,表示需要进行几次top的输出结果;
-p:后面接PID,指定某进程来进行查看。
在top执行过程中可以使用的按键命令:
?:显示在top当中可以输入的按键命令;
P:以CPU的使用资源排序显示;
M:以内存的使用资源排序显示;
N:以PID来排序;
T:以该进程使用的CPU时间累积(TIME+)排序;
k:给予某个PID一个信号;
r:给予某个PID重新制定一个nice值;
q:离开top。
3. 范例
3.1 top -d 2
每2秒更新一次top:
字段说明:
1)第一行top,任务队列信息,同uptime执行的结果:
【14:10:19】目前的时间;
【up 4 days, 4:21】开机到目前为止所经过的时间;
【1 user】已经登录系统的用户数;
【load average: 1.80, 1.09, 0.82】系统在1、5、15分钟的平均工作负载,表示系统平均要负责运行几个进程的意思。越小代表系统越闲置;
2)第二行Tasks:
【1200 total】目前进程的总量;
【1 running】正在运行的进程数;
【1199 sleeping】睡眠的进程数;
【0 stopped】停止的进程数;
【0 zombie】僵尸进程数;
3)第三行Cpus,显示CPU的整体负载:
【1.1%us】用户空间占用CPU百分比;
【1.6%sy】内核空间占用CPU百分比;
【0.0%ni】用户进程空间内改变过优先级的进程占用CPU百分比;
【97.1%id】空闲CPU百分比;
【0.2%wa】I/O wait百分比;
【0.0%hi】硬中断(Hardware Interrupts)CPU占比;
【0.0%si】软中断(Software Interrupts)CPU占比;
【0.0%st】被虚拟机所盗用的CPU占比;
4)第四行Mem,物理内存:
【total】物理内存总量;
【used】使用的物理内存量;
【free】空闲的物理内存量;
【buffers】用作内核缓存的物理内存量;
5)第五行Swap,交换分区/虚拟内存:
【total】交换区总量;
【used】使用的交换区量;
【free】空闲的交换区量;
【cached】可用交换区内存量;
6)第六行,空行,这个是在top进程中输入命令时显示状态的地方;
7)往下是进程信息:
【PID】每个进程的ID;
【USER】该进程所属的用户;
【PR】Priority的简写,进程的优先执行顺序,越小越早被执行;
【NI】Nice的简写,与PR有关,也是越小越早被执行;
【VIRT】进程占用的虚拟内存,单位kb;
【RES】进程占用的物理内存,单位kb;
【SHR】进程使用的共享内存,单位kb;
【S】进程的状态。D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程;
【%CPU】CPU的使用率,默认使用CPU使用率作为排序重点;
【%MEM】内存的使用率;
【TIME+】该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值;
【COMMAND】进程启动命令名称。
3.2 top -b -n 2 > /tmp/top.txt
将top的信息进行2次,然后将结果输出到/tmp/top.txt文件中:
3.3 top -p 44991
当前的bash PID可以由$$变量取得,使用top持续查看该PID:
3.4 修改NI值
上面bash的NI值为0,我们改成10,输入 r:
输入PID号44991,enter:
输入要更改的NI值,输入10,enter: