Linux - top命令详解

news2025/1/17 0:20:20

目录

  • top启动参数
  • 基础字段说明
    • 第一行,系统任务统计信息:
    • 第二行,进程统计信息:
    • 第三行,CPU统计信息:
    • 第四行,内存统计信息:
    • 第五行,swap交换分区统计信息:
    • 第六行,进程信息
  • 控制界面显示
  • 增加未显示的字段
  • 详细字段说明

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.127G
X 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.006G
X 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 运行中界面中,按下以下按钮(区分大小写):

  • 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环境下有意义

特性:

  • S:进程状态。(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
  • NI:Nice value 友善度,负值表示高优先级,正值表示低优先级
  • COMMAND:进程名或启动的命令行(通过 c命令切换)
  • ENVIRON:环境变量
  • TTY:启动进程的终端名。不是从终端启动的进程则显示为 ?

统计数据:

  • nTH:Number of Threads 线程数量
  • nDRT:最后一次写入到现在,被修改过的页面数
  • nFLT:页面错误次数
  • nMaj:已请求的内存页还没有被加载,这是主要的应用申请内存产生的请求
  • nMin:内存页已加载但是没有被MMU管理
  • namespace:作为一种用于隔离一组进程的资源手段
  • nsIPC:IIPC命名空间,用于隔离IPC
  • nsMNT:用于隔离挂载点
  • nsNET:用于隔离网络栈
  • nsPID:用于隔离进程编号
  • nsUSER:用于隔离用户
  • nsUTS:用于隔离域名和主机名
  • Flags:任务标志,参考 sched.h
  • vMj:主要页错误计数增量
  • vMn:次要页面错误计数增量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/158823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

堆和栈详解js

认识堆和栈学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈"。理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有几种含义在理解堆与栈这两个概念时,需要放到具体的场景下去理…

基于java SSM图书管理系统简单版设计和实现

基于java SSM图书管理系统简单版设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式…

软件测试/测试开发 | Jenkins通过什么方式报警?

在工作中,一般是没有时间一直看着 Jenkins 直到它运行结果出现的。所以采用了配置 Email 的方式,可以及时将结果通知给我们。 所需要用到的Jenkins插件 需要下载的 Email 插件名称,这两个插件的作用是帮助用户方便的设置格式化邮件&#xf…

【Java集合】开发中如何选择集合实现类

在实际开发中,选择什么集合实现类,主要取决于业务操作的特点,然后根据集合实现类特性进行选择: 👉 先判断存储的类型(一组对象或一组键值对): 一组对象 【单列】:Colle…

ES6-11这一篇就够啦

ES6-11这一篇就够啦ECMAScript 6-111、ECMAScript 相关介绍1.1 ECMAScript简介1.2 ES6的重要性2、ECMAScript 6新特性2.1 let关键字2.2 const关键字2.3 变量的解构赋值2.4 模板字符串2.5 简化对象写法2.6 箭头函数2.7 rest参数2.8 spread扩展运算符2.9 Symbol2.10 迭代器2.11 生…

在GCP上创建GCE的三种方式(Console,gcloud,Terraform)

1 简介 如果要选择GCP为云平台,则经常需要创建GCE(Google Compute Engine),有以下几种方式: (1) 在浏览器创建 (2) 命令 gcloud (3) Terraform 在开始之前,可以查看:《初始化一个GCP项目并用gcloud访问操作》。 …

MATLAB算法实战应用案例精讲-【数据分析】非参数估计:核密度估计KDE

前言 核密度估计(Kernel Density Estmation,KDE)认为在一定的空间范围内,某种事件可以在任何位置发生,但是在不同的地理位置上发生的概率是不一样的,如果在某一区域内其事件发生的次数较多则认为此区域内此事件发生的频率高,反之则低。另外根据地理学第一定律,即:距离…

python开发exe(无GUI)的踩坑笔记

笔者也经常在网上查询信息,但发现很多信息都是照搬,内容甚至有错误,可用性很低.笔者就认为如果要分享就应该把遇到的问题真实的分享出来,让更多同路人少走弯路.节约时间.觉得这篇文章有帮助的同学可以点个赞!将真有用的信息传递给更多人!python开发exe(无GUI)的踩坑笔记pyinsta…

你写过最愚蠢的代码是?

最近写的一些代码,拿出来给大伙看看,毕竟丢的是我的脸。第一个,是帮忙一个朋友看的力扣题目,然后就自己写了下题目如下:https://leetcode.cn/problems/median-of-two-sorted-arrays/代码写成这样void merge(int* nums1…

输入输出系统

文章目录前言前置知识实验操作实验一实验二实验三实验四实验五前言 博客记录《操作系统真象还原》第十章实验的操作~ 实验环境:ubuntu18.04VMware , Bochs下载安装 实验内容: 添加关中断的方式保证原子性。用锁实现终端输出。从键盘获取输…

Docker中的网络模式

使用命令docker inspect 容器id/name能看到容器的ip地址,使用主机和其他容器ping这个地址发现都是可以ping通的,但是使用本地局域网内的其他机器是无法ping通的。 Docker的默认网络模式可以分为:Host 模式、Bridge 模式或者 None 模式。然后来…

word中导入zotero的参考文献

平时使用Zotero管理文献,使用Word写完论文后想用Zotero导入参考文献,也方便修改参考文献格式。 Zotero 打开Zotero找到编辑-首选项 打开首选项,下载国标格式,引用-获取更多样式-搜索框:China Word Word中打开写的…

APSIM练习 :机会种植

该练习是设置一个播种规则,根据条件情况,自动取使用哪种作物进行轮作。 在之前的练习中,我们每年都会重置起始条件。我们不打算在本练习中进行此重置。相反,我们将研究如何根据这些不同的起始条件改变播种的内容;具体…

Docker简介以及安装

官方链接: Docker官网 Docker仓库地址 1、基本要求 docker要求Linux内核系统64位,内核在3.8以上 cat /etc/redhat-release uname -r 2、三要素 2.1、镜像 2.2、容器 2.3、仓库 镜像存放的地方,有点类似Maven仓库 3、安装步骤 官网指导&#xff…

最大比例(数论 最大公约数 辗转相减法)[第七届蓝桥杯省赛C++A/B组]

题目如下: 题解 or 思路: 假设题中所给的数据为 b1,b2,b3,⋅⋅⋅,bnb_1,b_2,b_3,⋅⋅⋅,b_nb1​,b2​,b3​,⋅⋅⋅,bn​,分别用第一项之后的项除以第一项,得到:b2b1,b3b1,⋅⋅⋅,bnb1\frac{b2}{b1},\frac{b3}{b1},⋅⋅…

【Axure教程】自动识别文件类型的上传列表

文件上传是系统中很常用的功能,所以今天作者就教大家在Axure中如何利用中继器,制作一个能自动识别常用的文件类型的上传列表。 一、效果展示 1、点击上传按钮,可以选择本地的文件进行上传 2、选择文件后,在上传列表中新增该文件…

学生用台灯应该选什么样的?看这一篇就够了~

学生在选购一款台灯时,最重要的考虑因素应该是什么?最重要是这款台灯是否真正护眼,价格和外观是次要的,可以根据预算、用途、家居风格来抉择,而是否护眼这一标准需要我们通过衡量台灯的光线指标来判断了。光线指标的五…

ORB-SLAM2 --- LoopClosing::SearchAndFuse函数

目录 1.函数作用 2. code及解析 3. ORBmatcher::Fuse函数解析(闭环调用版) 1.函数作用 将闭环相连关键帧组mvpLoopMapPoints 投影到当前关键帧组中,进行匹配,新增或替换当前关键帧组中KF的地图点。 2. code及解析 /*** brief 将…

第21章 随机游走

第21章 随机游走 随机游走的建模场景是某个对象按照随机选择的方向行走一个步数序列。 21.1赌徒破产 假设一个赌徒一开始有n美元赌注,他要进行一系列1美元投注。如果他赢得一局,则拿回他的赌注外加1美元。如果他输了,那么他将失去1美元。 …

MySQL中InnoDB的事务隔离

文章目录前言一、事务介绍二、事务的四大特性三、事务的隔离性四、事务隔离的实现前言 我们在实际开发中,执行某个业务,肯定不是简单的操作某一句SQL语句,而是多条SQL语句。那么这多条SQL语句必须是全部成功执行,或者全部失败。才…