top命令:是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
参数 | |
d | 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之 |
p | 通过指定监控进程ID来仅仅监控某个进程的状态 |
q | 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行 |
S | 指定累计模式 |
s | 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险 |
i | 使top不显示任何闲置或者僵尸进程 |
c | 显示整个命令行而不只是显示命令名 |
僵尸进程:
一个进程结束了,但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程,因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由init来接管它,成为它的父进程,子进程退出后init会回收其占用的相关资源
但是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程
第一行,任务队列信息,同 uptime 命令的执行结果
19:22:32 | 系统时间 |
up 13:31 min | 运行时间 |
2 user | 当前登录用户 |
load average:0.00,0.01,0.05 | 负载均衡(uptime) |
average后面的三个数 | 1分钟、5分钟、15分钟的负载情况 |
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了 |
第二行,Tasks — 任务(进程)
105 total | 总进程 |
2 running | 运行 |
103 sleeping | 休眠 |
0 stopped | 停止 |
0 zombie | 僵尸进程 |
第三行,cpu状态信息
0.7%us(user space) | 用户空间占用CPU的百分比 |
1.3%sy(sysctl) | 内核空间占用CPU的百分比 |
0.0%ni | 改变过优先级的进程占用CPU的百分比 |
98.0%id(idolt) | 空闲CPU百分比 |
0.0%wa(wait) | IO等待占用CPU的百分比 |
0.0%hi(Hardware IRQ) | 硬中断占用CPU的百分比 |
0.0%si(Software Interrupts) | 软中断占用CPU的百分比 |
第四行,内存状态
Cache :缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能
Cache并不是缓存文件的,而是缓存块的(块是/0读写最小的单元) ; Cache-般会用在1/0请求上,如果多个进程要访问某个文件,可以把此文件读入Cache中,这样下一个进程获取CPU控制权并访问此文件直接从Cache读取,提高系统性能
Buffer :缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程间通信需要等待的时间,当存储速度快的设备与存储速度慢的设备进行通信时,存储慢的数据先把数据存放到buffer ,达到一定程度存储快的设备再读取buffer的数据,在此期间存储快的设备CPU可以干其他的事情
Buffer:一般是用在写入磁盘的,例如:某个进程要求多个字段被读入,当所有要求的字段被读入之前已经读入的字段会先放到buffer中
第五行,swap交换分区信息
缓冲的交换区总量
第六行,各进程(任务)的状态监控和 ps 命令 输出的Head标头一样
在 top 中常用的命令
Ctrl+L | 擦除并且重写屏幕 |
K | 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽 |
i | 忽略闲置和僵死进程。这是一个开关式命令 |
q | 退出程序 |
r | 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10 |
S | 切换到累计模式 |
s | 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为秒s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加 |
f或者F | 从当前显示中添加或者删除项目 |
o或者O | 改变显示项目的顺序 |
l | 切换显示平均负载和启动时间信息 |
m | 切换显示内存信息 |
t | 切换显示进程和CPU状态信息 |
c | 切换显示命令名称和完整命令行 |
M | 根据驻留内存大小进行排序 |
P | 根据CPU使用百分比大小进行排序 |
T | 根据时间/累计时间进行排序 |
W | 将当前设置写入~/.toprc文件中 |
如:f 命令的使用