top使用方法:

使用格式:

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

参数说明:

d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p:通过指定监控进程ID来仅仅监控某个进程的状态。
q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S:指定累计模式。
s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i:使top不显示任何闲置或者僵死进程。
c:显示整个命令行而不只是显示命令名。

篡改预加载so文件,ls、top、ps等命令已经被木马的动态链接库劫持,无法获得木马进程相关的信息,通过执行如下命令即可复原:

rm -rf /usr/bin/top && mv /usr/bin/top.original /usr/bin/top

命令说明:

Ctrl+L:擦除并且重写屏幕
Ctrl+K:终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
Ctrl+i:忽略闲置和僵死进程。这是一个开关式命令。
Ctrl+q:退出程序
Ctrl+r:重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
Ctrl+ S:切换到累计模式。
Ctrl+s:改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
Ctrl+ f或者F:从当前显示中添加或者删除项目。
Ctrl+o或者O:改变显示项目的顺序
Ctrl+l:切换显示平均负载和启动时间信息。
Ctrl+m:切换显示内存信息。
Ctrl+ t:切换显示进程和CPU状态信息。
Ctrl+c:切换显示命令名称和完整命令行。
Ctrl+M:根据驻留内存大小进行排序。
Ctrl+ P:根据CPU使用百分比大小进行排序。
Ctrl+ T:根据时间/累计时间进行排序。
Ctrl+ W:将当前设置写入~/.toprc文件中。

常用命令
1、shift+m可以按照所占用的内存排序;
2、shift+p可以按照所占用的CPU排序
3、q或则ctrl+c 退出检测;


上半部分显示 CPU 和内存资源的总体使用情况:
第一行:系统当前时间,当前登录用户个数以及系统负载。

系统时间:07:27:05
运行时间:up 1:57 min,
当前登录用户:  3 user
负载均衡(uptime)  load average: 0.00, 0.00, 0.00
average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU

第二行:系统总进程数、运行中进程数、休眠、睡眠和僵尸进程数量。

总进程:150 total, 运行:1 running, 休眠:149 sleeping, 停止: 0 stopped, 僵尸进程: 0 zombie

第三行:CPU 当前使用情况。

0.0%us【user space】— 用户空间占用CPU的百分比。
0.3%sy【sysctl】— 内核空间占用CPU的百分比。
0.0%ni【】— 改变过优先级的进程占用CPU的百分比
99.7%id【idolt】— 空闲CPU百分比
0.0%wa【wait】— IO等待占用CPU的百分比
0.0%hi【Hardware IRQ】— 硬中断占用CPU的百分比
0.0%si【Software Interrupts】— 软中断占用CPU的百分比

第四行:内存当前使用情况。

1003020k total,   234464k used,   777824k free,    24084k buffers【缓存的内存量】

第五行:swap 空间当前使用情况。

2031612k total,      536k used,  2031076k free,   505864k cached【缓冲的交换区总量】

备注:
可用内存=free + buffer + cached
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,
第四行中空闲内存总量(free)是内核还未纳入其管控范围的数量。
纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

下半部分以进程为维度显示资源的占用情况。
PID:进程 ID。
USER:进程所有者。
PR:进程优先级 NI:NICE 值,NICE 值越小,优先级越高。
VIRT:使用的虚拟内存大小,单位 KB。
RES:当前使用的内存大小,单位 KB。
SHR:使用的共享内存的大小,单位 KB。
S:进程状态。
%CPU:更新时间间隔内进程所使用的 CPU 时间的百分比。
%MEM:更新时间间隔内进程所使用的内存的百分比。
TIME+:进程使用的 CPU 时间,精确到 0.01s。
COMMAND:进程名称。