Linux top命令详解

Posted BugMaker999

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux top命令详解相关的知识,希望对你有一定的参考价值。


Linux

编号

  1. 进程及编程
  • PID :进程编号
  • PPID :父进程编号
  • PGRP :进程组编号
  • TPGID :Tty进程组编号
  • TGID :线程组ID
  1. 用户及编号
  • 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命令详解的主要内容,如果未能解决你的问题,请参考以下文章

linux top命令详解

Linux命令工具 top详解

linux中经典详解 top命令的作用

linux的top命令参数详解

linux的top命令参数详解

linux的top命令参数详解