Linux 命令 top 详解

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 改变配色
相关推荐
kblj555512 小时前
学习Linux——网络基础管理
linux·网络·学习
前端世界12 小时前
用Python打造智能成绩分析系统:从异常处理到断言验证的全流程实战
服务器·数据库·python
小王C语言13 小时前
Linux基础开发工具----yum、vim和gcc/g++
linux·运维·服务器
newxtc13 小时前
【辽宁政务服务网-注册_登录安全分析报告】
运维·selenium·安全·政务·安全爆破
_w_z_j_13 小时前
Linux----文件系统
linux·运维·服务器
测试-鹏哥13 小时前
要将ITP集成到Jenkins Pipeline中,实现开发发版时自动触发自动化测试
运维·python·测试工具·ci/cd·jenkins
SKYDROID云卓小助手14 小时前
无人设备遥控器之数字图传技术
运维·服务器·单片机·嵌入式硬件·fpga开发
努力努力再努力wz14 小时前
【Linux进阶系列】:线程(上)
java·linux·运维·服务器·数据结构·c++·redis
java 乐山14 小时前
蓝牙网关(备份)
linux·网络·算法
2301_8035545214 小时前
面试后查缺补漏--cmake,makefiles,g++,gcc(自写精华版)
linux·运维·服务器