top启动参数
-
top
:运行基本top命令,显示所有进程信息,5秒刷新一次,根据使用占比%CPU排序 -
top -c
:显示整个命令行而不是整个命令名 -
top -d secs
:表示进程界面更新时间(默认5秒) -
top -n max
:循环显示的次数 -
top -u|U user
:指定用户名信息 -
top -p pid(s)
:查看指定进程信息 -
top -b
:批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到文件内 -
top -o field
:根据哪一列来排序,例如根据内存排序top -o %MEM
(top默认使用cpu来排序) -
top -w [cols]
:显示某一列的详情 -
top -q
:top没有任何延迟时间的进行刷新。 -
top -S
:指定累计模式 -
top -s
:使top命令在安全模式中运行。将去除交互命令带来的潜在危险。 -
top -i
: 使top不显示任何闲置或者僵死的进程。 -
top -b -n 2 > /tmp/top.txt
:表示将PID为2的进程表在/tmp/top.txt中打印两次。
基础字段说明

第一行,系统任务统计信息:
top - 16:55:08 up 194 days, 1:23, 1 user, load average: 0.00, 0.01, 0.05
-
16:55:08
- 当前系统时间 -
up 194 days, 1:23
- 系统已经运行了194天1小时23分钟(在这期间没有重启过) -
1 user
- 当前有一个用户登录系统 -
load average: 0.00, 0.01, 0.05
- 后面的三个分别是为 1分钟、5分钟、15分钟前到现在系统负载的平均值,转为百分比为0%,1%,5%
第二行,进程统计信息:
Tasks: 75 total, 1 running, 74 sleeping, 0 stopped, 0 zombie
任务(进程):系统现在共有75个进程,其中处于运行中的有1个,74个在休眠,停止状态的有0个,僵尸状态的有0个
-
X total
:进程总数 -
X running
:正在运行的进程数 -
X sleeping
:睡眠的进程数 -
X stopped
:停止的进程数 -
X zombie
:僵尸进程数
第三行,CPU统计信息:
%Cpu(s): 1.0 us, 0.7 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
Cpu占用百分比:用户占1%,内核占0.7%,改变过优先级的进程占0.0%,空闲98.3%,IO等待占0.0%,硬中断占0.0%,软终断占0.0%,被偷走的占0.0%
-
X us
:用户态进程消耗的CPU百分比 -
X sy
:内核消耗的CPU百分比 -
X ni
:用户进程空间内改变过优先级的进程占用CPU百分比 -
X id
:空闲CPU百分比 -
X wa
:IO读写等待消耗的CPU百分比 -
X hi
:硬中断(Hardware IRQ)消耗的CPU百分比 -
X si
:软中断(Software IRQ)消耗的CPU百分比 -
X st
:被偷走的CPU百分比
注:
IRQ:IRQ全称为Interrupt Request,即是“中断请求”的意思。
st:stole time 的缩写,该项指标只对虚拟机有效,表示分配给当前虚拟机的 CPU 时间之中,被同一台物理机上的其他虚拟机偷走的时间百分比
第四行,内存统计信息:
KiB Mem : 1883724 total, 78476 free, 623420 used, 1181828 buff/cache
内存/KIB:物理内存总量为1883724kib=1.796G,空闲内存为78476kib=76M,使用中的内存623420kib=608M,缓存的内存量为1181828kib=1.127GX kib total
:物理内存总量X kib used
-使用中的内存总量X kib free
- 空闲内存总量Xkib buff/cache
- 缓存的内存量
第五行,swap交换分区统计信息:
KiB Swap: 0 total, 0 free, 0 used. 1055252 avail Mem
交换分区/KiB:交换区总量为0,空闲交换区总量为0,使用的交换区总量为0,可用交换区总量为1055252Kib=1.006GX kib total
- 交换区总量X kib used
- 使用的交换区总量X kib free
- 空闲交换区总量X kib avail Mem
- 可用交换区总量
注:
对于内存监控,在top里要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这表示内存不够用了
第六行,进程信息
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
-
PID
:进程id -
USER
:进程所有者 -
PR
:进程优先级 -
NI
:nice值。负值表示高优先级,正值表示低优先级 -
VIRT
:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量 -
RES
:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小 -
SHR
:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来 -
DATA
1、数据占用的内存。如果top没有显示,按f键可以显示出来。
2、真正的该程序要求的数据空间,是真正在运行中要使用的。 -
S
:进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 -
%CPU
:上次更新到现在的CPU时间占用百分比 -
%MEM
:进程使用的物理内存百分比 -
TIME+
:进程使用的CPU时间总计,单位1/100秒 -
COMMAND
:进程名称(命令名/命令行)
控制界面显示
top 运行中界面中,按下以下按钮(区分大小写):
-
1
– 显示所有CPU占用情况 -
s
– 改变画面更新频率 -
l
– 关闭或开启第一行 top 信息的表示 -
t
– 关闭或开启第二行 Tasks 和第三行 Cpus 信息的表示 -
m
– 关闭或开启第四行 Mem 和 第五行 Swap 信息的表示 -
N
– 以 PID 的大小的顺序排列表示进程列表 -
P
– 以 CPU 占用率大小的顺序排列进程列表 -
M
– 以内存占用率大小的顺序排列进程列表 -
h
– 显示帮助 -
n
– 设置在进程列表所显示进程的数量 -
q
– 退出 top
增加未显示的字段
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容:
按f
键之后会显示列的列表,方向键移动到要显示或隐藏的列按空格
,设置完后按Esc
键退出即可。
示例:
1、进入 top 命令运行中界面
2、按f
键
3、移动鼠标到 PPID(父进程id)
4、按空格
键选中,选中后PPUD
前面会显示*
号
5、按Esc
键 退出,可以看到后面增加了 PPID 列
详细字段说明
进程线程:
-
PID
:进程id -
PPID
:父进程id -
PGRP
:进程组id -
PR
:进程优先级 -
TPGID
:Tty进程组id -
TGID
:线程组id -
WCHAN
:若该进程在睡眠,则显示睡眠中的系统函数名
用户相关:
-
UID
:进程所有者的用户id (即展示出来的身份有可能不是真实身份) -
USER
:进程所有者的用户名 -
RUID
:真实用户id -
RUSER
:真实用户名称 -
SUID
:已保存的用户id -
SUSER
:已保存的用户名 -
GID
:有效用户组id -
GROUP
:进程所有者的组名 -
SID
:会话id (即可以说是用户会话,也可以说是进程的会话) -
CGROUPS
:控制组 -
SUPGIDS
:支持组ID
内存资源:
-
CODE
:可执行代码占用的物理内存大小,单位kb -
DATA
:可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb -
RES
:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA,对应 %MEM列。 -
SHR
:共享内存或库大小。单位kb -
SWAP
:进程使用的虚拟内存中,被换出的大小,单位kb。 -
USED
:RES + SWAP 大小,单位kb。 -
VIRT
:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
CPU 资源:
-
TIME
:进程使用的CPU时间总计,单位秒 -
TIME+
:进程使用的CPU时间总计,单位1/100秒,比如 5:29.38 对应的 CPU 时间格式为:minutes:seconds.hundredths -
%CPU
:CPU 使用率 -
P
:最后使用的CPU,仅在多CPU环境下有意义
特性:文章来源:https://www.toymoban.com/news/detail-597207.html
-
S
:进程状态。(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) -
NI
:Nice value 友善度,负值表示高优先级,正值表示低优先级 -
COMMAND
:进程名或启动的命令行(通过 c命令切换) -
ENVIRON
:环境变量 -
TTY
:启动进程的终端名。不是从终端启动的进程则显示为 ?
统计数据:文章来源地址https://www.toymoban.com/news/detail-597207.html
-
nTH
:Number of Threads 线程数量 -
nDRT
:最后一次写入到现在,被修改过的页面数 -
nFLT
:页面错误次数 -
nMaj
:已请求的内存页还没有被加载,这是主要的应用申请内存产生的请求 -
nMin
:内存页已加载但是没有被MMU管理 -
namespace
:作为一种用于隔离一组进程的资源手段 -
nsIPC
:IIPC命名空间,用于隔离IPC -
nsMNT
:用于隔离挂载点 -
nsNET
:用于隔离网络栈 -
nsPID
:用于隔离进程编号 -
nsUSER
:用于隔离用户 -
nsUTS
:用于隔离域名和主机名 -
Flags
:任务标志,参考 sched.h -
vMj
:主要页错误计数增量 -
vMn
:次要页面错误计数增量
到了这里,关于Linux - top命令详解(监视进程和Linux整体性能)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!