1 top命令介绍
- Linux系统中,Top命令主要用于实时运行系统的监控,包括Linux内核管理的进程或者线程的资源占用情况。
- 这个命令对所有正在运行的进程和系统负荷提供不断更新的概览信息,包括系统负载、CPU利用分布情况、内存使用、每个进程的内容使用情况等信息。
2 常用的 top 指令
shell
top:启动top命令
top -c:显示完整的命令行
top -b:以批处理模式显示程序信息
top -S:以累积模式显示程序信息
top -n 10:表示更新十次后终止更新显示
top -d 3:设置信息更新周期为3秒
top -p 139:显示进程号为139的进程信息,CPU、内存占用率等
除此之外,在top进程运行过程中,两个最重要的功能是查看帮助(h 或 ?)和退出(q 或 Ctrl+C)
3 top信息详解
top展示界面由从上到下四部分组成:
- 概览区域
- 表头
- 任务区域
- 还有一个输入/消息行,位于概览区域和表头之间(一般不需要使用这个,会看参数值即可)。
3.1 概览区逐行解释
3.1.2 概览区第一行详解
shell
top - 13:23:10 up 398 days, 9:03, 6 users, load average: 2.36, 2.62, 2.59
- top:程序或者窗口的名称
- 13:23:10 up 398 days, 9:03:分别是当前时间、启动天数、系统的启动时间
- 6 users:总共的用户数量
- load average: 2.36, 2.62, 2.59:分别代表过去1、5和15分钟的系统平均负载
3.1.2 概览区第二行详解
shell
Tasks: 241 total, 2 running, 239 sleeping, 0 stopped, 0 zombie
该信息对 task 进行分类,包括running、sleeping、stopped、zombie四类,显示了系统中正在运行的任务的状态统计信息:
- 241 total:总共有241个任务数
- 2 running:当前有 2 个任务正在运行
- 239 sleeping:当前有 239 个任务处于睡眠状态
- 0 stopped:有 0 个任务停止
- 0 zombie:0 个任务为僵尸进程
3.1.3 概览区第三行详解
shell
%Cpu(s): 3.9 us, 7.2 sy, 0.0 ni, 83.4 id, 0.0 wa, 0.0 hi, 5.5 si, 0.0 st
显示CPU的状态百分比:
- %Cpu(s): CPU使用率的统计信息
- us (user): 用户空间进程占用CPU的时间百分比
- sy (system): 内核空间进程占用CPU的时间百分比
- ni (nice): 用户进程以优先级调整过的占用CPU的时间百分比(通常不会有这个值)
- id (idle): CPU空闲的时间百分比
- wa (IO-wait): CPU等待I/O操作的时间百分比
- hi (hardware interrupt): CPU处理硬件中断的时间百分比
- si (software interrupt): CPU处理软件中断的时间百分比
- st: 被虚拟化环境偷取的时间百分比(通常不会有这个值)
3.1.4 概览区第四、第五行详解
shell
KiB Mem : 32761636 total, 10839940 free, 14976144 used, 6945552 buff/cache
KiB Swap: 4063228 total, 4043260 free, 19968 used. 15659636 avail Mem
(表示内存的使用情况)
- 第四行表示物理内存,分为total、 free、 used 、 buff/cache
- 第五行表示虚拟内存,分为total、free、used、avail
4 任务区字段详解
- %CPU: CPU Usage,自上次屏幕更新以来任务占用的CPU时间份额,表示为总CPU时间的百分比。
- %MEM: Memory Usage,进程使用的物理内存百分比
- CODE:Code Size,可执行代码占用的物理内存量
- COMMAND:Command Name or Command Line,用于显示输入的命令行或者程序名称
- PID:Process Id,任务独立的ID,即进程ID
- PPID:Parent Process Id,父进程ID
- UID:User Id,任务所有者的用户ID
- USER:User Name,用户名
- RUSER:Real User Name,实际的用户名
- TTY:Controlling Tty,控制终端名称
- TIME:CPU TIME,该任务CPU总共运行的时间
- TIME+:同TIME,其粒度更细
- OOMa:Out of Memory Adjustment Factor,内存溢出调整机制,这个字段会被增加到当前内存溢出分数中,来决定什么任务会被杀掉,范围是-1000到+1000。
- OOMs:Out of Memory Score,内存溢出分数,这个字段是用来选择当内存耗尽时杀掉的任务,范围是0到+1000。0的意思是绝不杀掉,1000的意思是总是杀掉。
- S:Process Status,表示进程状态信息
- D: 不可中断休眠
- I:空闲
- R:运行中
- S:休眠
- T:被任务控制信号停止
- t:在跟踪期间被调试器停止
- Z:僵尸
(相关属性有很多,可以使用man top查看,这里先列举这些。)
5 交互命令详解
top的功能很多,基本能够查看进程的各种状态信息,其中还有一些交互式的命令,方便我们更好的查看系统状态。
在top主界面中,我们输入下面的命令
命令 | 功能 |
---|---|
h、? | 帮助信息查看,涵盖所有的快捷键 |
空格、回车按键 | 手动刷新界面信息 |
q、ESC按键 | 退出 |
B | 粗体显示功能 |
d、s | 改变间隔时间 |
E、e | 切换内存显示的单位,从KiB到EiB |
g | 然后输入1-4其中一个数字,选择哪种窗口(1.默认,2.任务,3.内存,4.用户) |
H | 进程、线程显示切换 |
k | 输入PID信息,杀掉一个任务 |
Z | 改变配色 |