[Linux 性能检测工具]TOP

时间:2022-01-15 00:19:34

TOP

NAME

显示linux任务

语法

top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...]

描述

top程序提供了系统实时信息,显示系统的总体信息和一组由内核管理的任务,系统总体信息的类型,和任务列表上类型,顺序和大小信息,都可以由用户配置,重启机制就有效。

提供了有限的一些交互接口让用户配置,涵盖了操作的每个方面。当top引用这个文件,可以随意命名top程序,然后当读写一个配置文件的时候新的名称会被引用到top的显示和使用。

encompassing every aspect of its operation. And while top is referred to throughout this  document, you are free to name the program anything you wish.  That new name, possibly an  alias, will then be reflected on top’s display and used when reading and writing a configuration file.

命令行选项

-a      根据内存使用排序

-b      在输出到文件的时候比较有用,除了指定-n和ctrl+c情况下,其他状况下不会停止。

-c      在完全命令行和程序名之间切换,(可以通过比较加-c和不加-c在COMMAND列的显示)

-d      连续出报告之间的延迟,之后可是使用交互命令s,d来修改

-h      显示帮助

-H     显示到线程级别

-i       不显示空闲的或者僵死(zombie)进程

-m    VIRT/USED之间的切换,USED是值内存中的+换出的

-M    显示内存单位(K,M,G),总内存要显示浮点值

-n      显示次数限制

-p      跟踪的进程id,最多20个,格式-pN1 -pN2 ...  or  -pN1, N2 [,...]

-s      保密模式,就算是root也会被要求

-S      启动累计模式,

-u      监控由某个用户启动的程序

-U     监控由某个用户启动的程序,This matches real, effective, saved, and filesystem UIDs.(搞不懂)

-v      查看版本

报告

a:PID        进程id

b:PPID      父进程id

c:RUSER   进程实际拥有者

d:UID        进程有效拥有者的id

e:USER     进程有效拥有者名

f:GROUP  进程有效拥有的组名

g:TTY        控制终端的名(搞不清楚)

h:PR          进程优先级

i:NI                     进程的NICE值,越低说明优先级越高,如果为0 说明用基础的优先级,调整之后会在优先级上做调整

j:P              最后使用的CPU(SMP),如果是在真SMP环境,这个值会感觉被顺序的改变,因为内核内部使用弱affinity。

k:%CPU    CPU使用率

l:TIME      总共被这个程序花掉的CPU时间

m:TIME+ 和time一样就是多了2个小数位

n:%MEM 内存使用率(RES)

o:VIRT      虚拟内存镜像(KB)(感觉是windows的虚拟地址空间),总共被进程使用的虚拟内存量,包含所有的代码数据和共享库和被换出的页

USED=RES+SWAP,VIRT到底是啥

p:SWAP    每个进程使用的SWAP大小

q:RES        每个进程使用的内存大小(非swaped物理内存)RES=CODE+DATA

r:CODE     用来执行代码存放代码的物理内存 TRS

s:DATA     用来执行代码存放数据的物理内存 DRS

t:SHR        共享内存

u:nFLT       major页错误量

v:nDRT     脏页量,从上次写入磁盘到现在的脏页量

w:S            进程状态,D=不可中断睡眠,R=运行,S=睡眠,T=跟踪停止,Z=僵死

这里的R状态是可以被运行的意思。

x:Command

命令名可以是命令也可以是程序名,可以通过-c参数做切换,也可以使用交互性命令切换。

y:WCHAN

在什么函数里面睡眠,如果运行这个,那么top的工作计划会增加700KB,如果要减少只能停止或重启

z:Flags      这列表示进程当前的调度标记,以16进制方式(搞不懂)

选择和调整列位置

用o来调整位置,按小写右移,大写左移

用f来调整显示的列,然后按对应的字母,显示为大写,并且有*表示显示,否则不显示。

总体区域

交互性命令

?/h            帮助

=                退出限制,限制,i/-i空闲进程不现实,n最大显示几个任务,-p指定进程

A                对齐显示,在对齐模式和全屏模式切换,可以使用G命令选择窗口

B                开启停用对总体趋于和当前窗口粗体显示,会被x,y影响

d/s             修改采样频率

g                修改当前窗口名

a/w           使用a,w来切换当前窗口

G                切换窗口,使用-来显示和隐藏当前窗口

I                 关闭Solaris模式,关闭之后,CPU使用率会被除以CPU个数

U               选择一个用户,对real,effective,saved和filesystem有刻意匹配

k                          kill一个进程,提供PID,然后会发一个signal,默认是SIGTERM,如果想要反悔,先填入pid,然后在signal里面填0

q                退出top

r                 对task设置nice值

W               写配置文件,默认写到$HOME/.toprc

Z                修改配色方案

总体区域命令

l                  打开关闭平均负荷和启动时间栏

m               打开关闭mem,swap栏

t                 打开关闭cpu,task栏

1                查看每个cpu状态

进程区域命令

b                对高亮部分粗体还是保留,影响x,y显示,只有在任意一个启用时可用

x                 对排序列高亮

y                 对running状态进程高亮

z                 打开关闭配色

task区域的内容

c                 进程名和命令之前切换

f/o             选择显示的列和修改显示列的顺序

H                启动线程级别

S                 启动累计模式

u                显示指定的用户(不知道和U有啥区别)

task区域的大小

i                 off显示所有的进程,on不现实空闲进程或者僵死进程

n                限制最大显示进程数

排序

</>            可以通过<,>移动排序列

F/O            选择排序字段

R                修改,倒序还是顺序

M/N/P/T  来对%MEM,PID,%CPU,TIME+排序

参考

每天一个linux命令(44):top命令

设置进程的优先级:nicerenice

linux top VIRT RES SHR SWAP DATA内存参数详解

后记

top太强大,没有提到的地方请看man吧