Linux top命令详解
Posted BugMaker999
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux top命令详解相关的知识,希望对你有一定的参考价值。
编号
- 进程及编程
- PID :进程编号
- PPID :父进程编号
- PGRP :进程组编号
- TPGID :Tty进程组编号
- TGID :线程组ID
- 用户及编号
- UID :有效用户编号 (即展示出来的身份有可能不是真实身份)
- USER :有效用户名
- RUID : 真实用户编号
- RUSER :真实用户名称
- SUID :已保存的用户编号
- SUSER :已保存的用户名
- GID :有效用户组编号
- GROUP :有效用户组名称
- SID :会话编号 (即可以说是用户会话,也可以说是进程的会话)
进程状态
- R :Running 运行中
- S :Sleeping 睡眠中
- D :Disk sleep 即 uninteruptible_sleep 一般是等待硬件 IO
- Z :Zoombie 一般是父进程在调用 wait 系统调用读取子进程状态之前就先退出了,导致子进程还占用了进程表的空间
特性
- S :进程状态 Process Status (R,S,D,Z) 等
- NI :Nice value 友善度,好人值 (人好被插队)默认都是0,范围 [-20,19]
- PR :Priority (通过 20 + NI 计算出来的)其跟 NI 值一样的语义,也是友善度。值越低抢占的运行时间越多,其实际优先级就越高
- 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 + DATA
- SHR :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 (用于隔离域名和主机名)
CPU 使用率
top 命令中关于 CPU 使用率的主要以下面的数据来体现:
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0
- us :表示 用户态的 CPU 占用时间
- sy :表示系统内核态 CPU 占用时间
- ni :手动 设置了 nice 值的进程占用的 CPU 时间
- id :CPU 空闲时间
- wa :CPU等待 IO 完成的时间
- hi : 处理硬件中断的时间
- si :处理软件中断的时间
- st :虚拟化环境中被的虚拟机 steal (偷走) 占用的时间。
平均负载
Linux 中的平均负责有如下有一个值,一个简单的理解是 他们分别对应 1分钟,5分钟,15分钟的平均负载。
load average: 0.12, 0.11, 0.05
但是其实它是指数移动平均来计算的,也就是之前的负载值对当前的负载值的影响比较小。
具体解析参考:Examining Load Average 另外值得说明的是,其统计的不仅仅是运行中的任务,也包含 D (uninterruble_sleep, disk sleep) 状态的任务,其数据也要结合 CPU 核数来看才有意义。 简单来说,平均负载除 CPU 核数大于3就负载有问题了。
以上是关于Linux top命令详解的主要内容,如果未能解决你的问题,请参考以下文章