首页 > 代码库 > linux top

linux top

Linux top命令简介

在终端输入top,结果如下:



1:第一行,系统状态

19:12:02---->当前的系统时间

6 min------->系统启动了6分钟

1 use------->只有1个用户登录,如果2个人分别通过2台电脑登录1个账户,这个数字是2,也就是说不是账户的登录个数

load average:0.43, 0.59, 0.3------->三个数字顺序代表系统1分钟,5分钟,15分钟的负载状态,

这3个数字数据是每隔5秒钟检查一次活跃的进程数,然后通过进程数根据一定的算法计算出来的。


查看CPU个数命令,grep  "model name" /proc/cpuinfo  | wc -l

假设 A = (load average),B = CPU个数

A / B  < 0.7 ,此时表示系统良好

A / B  >= 0.7 且A / B  <= 1 ,如果长期这种状态,最好尽早调查服务器的状态,避免出现负荷

A / B  >= 1 且 A / B  <= 5 ,系统处于负荷状态,马上调查服务器的状态

A / B  >  5  ,系统处于超负荷状态

2:第二行,进程状态


Tasks: 198 total-------->当前的系统共有198个进程

2 running--------------->其中有2个进程处于运行态

196 sleeping------------>其中有196个进程处于休眠态

0 stopped--------------->其中有0个进程处于暂停态

0 zombie---------------->其中有0个进程处于僵死态


3:第三行,CPU状态


7.1 us-------->User CPU time: 用户空间占用CPU的百分

5.9 sy-------->System CPU time:内核空间占用CPU的百分比

0.0 ni-------->Nice CPU time 改变过优先级的进程占用CPU的百分比

86.7 id------->空闲CPU百分比

0.2 wa-------->iowait: IO等待占用CPU的百分比

0.1 hi-------->Hardware IRQ硬中断占用CPU的百分比

0.0 si-------->SoftwareIRQ:软中断占用CPU的百分比

0.0 st-------->Steal Time: 虚拟 CPU 等待物理CPU的时间的百分比


4:第四行,内存状态


3931300 total ------> 内存总量(4GB)

1402100 used--------> 使用的内存总量(1.4GB)

2529200 free--------> 空闲的内存总量(2.5G)

89240 buffers ------> 缓存的内存量 (89M)


5:第五行,交换区状态


7812092 total-------> 交换区总量(8GB),当时分区时手动分了内存的2倍,8G

0used---------------> 使用的交换区总量(0),使用了0M,说明暂时物理内存完全够用

7812092 free--------> 空闲交换区总量(8GB)

689192cached--------> 缓冲的交换区总量(7GB)


6:第六行,各进程状态


PID------------> 进程id号

USER-----------> 进程所有者

PR-------------> 进程优先级,是内核分配的优先级,一般比NI值高20。如果是 rt,表示该进程是在实时调度优先级下运行

NI-------------> nice值。是用户层面的优先级,越小优先级越高

VIRT-----------> 进程需要的内存总量,包括进程使用的库、代码、数据等,单位kb。

假如进程申请5M的内存,但实际只使用了1M,那么它会增长5M,而不是实际的使用量

RES------------> 进程当前使用的、未被换出的物理内存大小,单位kb。

假如进程申请5M的内存,但实际只使用了1M,那么它会增长1M,是实际的使用量

SHR------------>共享内存大小,单位kb

S--------------> 进程状态。D=不可中断的睡眠状态,在这个状态下,kill这个进程是不好使的,

比如read系统调用时,就是这个状态,但是因为时间太短,top命令一般捕捉不到, 

S=可中断的睡眠状态 R=运行 T=跟踪/停止 Z=僵尸进程

%CPU----------->上次更新到现在的CPU时间占用百分比

%MEM----------->进程使用的物理内存百分比

TIME+---------->进程使用的CPU时间总计,单位1/100秒

COMMAND-------->进程名称