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 阅读(291) 评论(0) 编辑 收藏 举报