Open codetalks-new opened 5 years ago
top 命令中关于 CPU 使用率的主要以下面的数据来体现:
%Cpu(s): 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
其中:
us
表示 用户态的 CPU 占用时间sy
表示系统内核态 CPU 占用时间ni
手动 设置了 nice 值的进程占用的 CPU 时间id
CPU 空闲时间wa
CPU等待 IO 完成的时间hi
处理硬件中断的时间si
处理软件中断的时间st
虚拟化环境中被的虚拟机 steal (偷走) 占用的时间。Linux 中的平均负责有如下有一个值,一个简单的理解是 他们分别对应 1分钟,5分钟,15分钟的平均负载。
load average: 1.08, 1.10, 1.10
但是其实它是指数移动平均来计算的,也就是之前的负载值对当前的负载值的影响比较小。 具体解析参考:
进程状态主要有 4种
R
Running 运行中S
Sleeping 睡眠中D
Disk sleep 即 uninteruptible_sleep 一般是等待硬件 IO。Z
Zoombie 一般是父进程在调用 wait
系统调用读取子进程状态之前就先退出了,导致子进程还占用了进程表的空间。
理解进程中的缩略词术语
编号
进程及编程
PID
进程编号PPID
父进程编号PGRP
进程组编号TPGID
Tty进程组编号TGID
线程组ID用户及编号
UID
有效用户编号 (即展示出来的身份有可能不是真实身份)USER
有效用户名RUID
真实用户编号RUSER
真实用户名称SUID
已保存的用户编号SUSER
已保存的用户名GID
有效用户组编号GROUP
有效用户组名称SID
会话编号 (即可以说是用户会话,也可以说是进程的会话)特性
S
进程状态 Process Status (R,S,D,Z) 等NI
Nice value 友善度,好人值 (人好被插队)默认都是0,范围 [-20,19]PR
Priority (通过 20 + NI 计算出来的)其跟 NI 值一样的语义,也是友善度。值越低抢占的运行时间越多,其实际优先级就越高 (linux 0~99 的 pr 属性 realtime (rt) 任务,100~139 (PR + 100)属性用户)COMMAND
进程名或启动的命令行(通过 c命令切换)ENVIRON
环境变量TTY
使用的 Tty 没有的话表示为?
号。tty 提供交互的输入输出,没有tty
的进程也就没有标准输入和输出内存资源
CODE
可执行文件代码段大小即text resident set
(TRS) (KB)DATA
数据段大小+栈空间大小 即data resident set
(DRS ) (KB)RES
Resident Size (KB) 进程占用的实际物理内存大小。对应%MEM
列。RES = CODE + DATASHR
Shared Memory (KB) 指明了VIRT
中有多少是共享内存或库大小。SWAP
Swapped size(KB) 使用的交互分区大小。USED
RES
+SWAP
大小VIRT
Virtual Image (KB) 虚拟内存分配大小,包含了其他文件(如代码,共享库,mmap等)映射,交换分区映射的地址区间大小。以虚拟内存的地址空间占用理解就对了,并不能准确反应物理内存的占用。CPU 资源
TIME
进程占用 CPU 时间 (如果使用S
命令启用累加模式(Cumulative Mode) 则包含其曾经的子进程。TIME+
CPU Time, hundredths 比如5:29.38
对应的 CPU 时间格式为:minutes:seconds.hundredths
%CPU
CPU 使用率P
Last Used Cpu (SMP)统计数据
nTH
Number of Threads 线程数量nDRT
Number of Dirty pages 脏页数量nMaj
Major Page Faults (已请求的内存页还没有被加载,这是主要的应用申请内存产生的请求)nMin
Minor Page Faults (内存页已加载但是没有被MMU管理) namespace 作为一种用于隔离一组进程的资源手段,nsIPC
IPC namespace Inode (用于隔离IPC)nsMNT
MNT namespace Inode (用于隔离挂载点)nsNET
NET namespace Inode (用于隔离网络栈)nsPID
PID namespace Inode (用于隔离进程编号)nsUSER
USER namespace Inode (用于隔离用户)nsUTS
UTS namespace Inode (用于隔离域名和主机名)Inode 是一个描述文件系统对象(如文件或目录等)的数据结构。