TOP命令—2—使用

基于 Qcom msm-4.14 Android-R

一、top打印解析

1. 第一行:

Tasks: 596 total,   2 running, 594 sleeping,   0 stopped,   0 zombie

Tasks:当前有多少进程(注意是进程不是线程)。
running:正在运行的进程数。
sleeping:正在休眠的进程数。
stopped:停止的进程数。
zombie:僵尸进程数。

这里 running 越多,服务器自然压力就越大。


2. 第二行:

  Mem:       11G total,       10G used,      891M free,      6.4M buffers

total:物理内存总量。
used:使用的内存量。
free:空闲内存量。
buffer:用作内核缓存的内存量。


3. 第三行:

 Swap:      2.0G total,         0 used,      2.0G free,      3.3G cached

total:交换区内存总量。
used:使用的交换区总量。
free:空闲交换区总量。
cached:缓冲的交换区总量。


4. 第四行:

800%cpu 148%user   5%nice 230%sys 401%idle   0%iow  11%irq   6%sirq   0%host

user:用户空间占CPU的百分比。
nice:
sys:内核空间占CPU的百分比。大量IO操作会使这个值变大。
idle: 空闲CPU比率。
iow: 等待输入输出的CPU时间百分比。
irq: 硬中断占用百分比
sirq: 软中断占用百分比
host:


5. Ubuntu上执行还会多出一行:

top - 16:20:38 up 12 days,  5:24,  2 users,  load average: 0.04, 0.03, 0.05

up:机器运行了多长时间。
users:当前登录用户数。
load average:系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。


6. 进程信息

  PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ ARGS
 3178 system       10 -10  16G 1.9G 1.1G S  141  17.5 439:02.56 com.xiahai.napa
  825 system       -2  -8 313M  41M  30M S 41.6   0.3 149:51.89 surfaceflinger
  524 logd         30  10 241M  29M 3.0M S  8.3   0.2  12:05.53 logd

USER 进程所有者的用户名
PR 优先级
NI nice值,负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,RES=CODE+DATA
SHR 共享内存大小
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
ARGS 进程名/命令行


二、top常用参数

1. 查看帮助

# top --help

usage: top [-Hbq] [-k FIELD,] [-o FIELD,] [-s SORT] [-n NUMBER] [-m LINES] [-d SECONDS] [-p PID,] [-u USER,]

实时显示进程活动。

-H 显示线程。默认是只显示进程的,一个进程的所有信息都统计在一起显示在主线程上。
-k 后备排序 FIELDS(默认 -S,-%CPU,-ETIME,-PID)
-o 只显示特定字段(默认 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、CMDLINE),如 top -o PID 只显示PID字段。
-O 添加 FIELDS(替换默认的 PR、NI、VIRT、RES、SHR、S)
-s 按列编号排序(1-X,默认9,也就是按第9排CPU%来排序),R键可实现反向排序。
-b 批处理模式(无 tty),也就是一次将所有的都显示出来,无论终端是否显示的了。
-d 每个循环之间的延迟秒数(默认是3),可以-d 1改为每秒刷新一次。
-m 要显示的最大任务数。比如 top -m 10 只显示CPU占用top10的进程
-n 在 NUMBER 次迭代后退出。比如 -n 5 在top刷新5次后就退出了。
-p 显示这些 PID,比如 top -p 3198 -p 814 只看这两个进程
-u 显示这些用户。比如 top -u root 只看root进程的,但是前面几行显示的还是所有进程的。
-q 安静(不要前面那几行和标题行)

光标向左/向右更改排序(按哪列排序哪列将被[]括住),向上/向下移动列表,空格强制更新,R 反向排序,Q 退出。


三、总结

1. top默认只显示进程的,将一个进程所有线程的信息统计显示在主线程上。若想显示线程加上-H.

2. top统计的CPU占有率只和运行时间有关,和跑的大小核无关。同一任务跑在大核top负载是20%,绑到小核上top负载可能就是40%了。

3. top统计出来的CPU占有率是单个核上的,还需要除以核心数才是在整机上占有的负载。busybox top统计出来的就是此进程占用的整机负载,不需要再除以核心个数了。

 

posted on 2023-05-23 21:46  Hello-World3  阅读(264)  评论(0编辑  收藏  举报

导航