Linux命令-top

news2024/12/23 19:25:24

1、top命令简介

top命令是linux系统常用命令之一,能够实时显示系统各个进程的资源占用情况,类似于windows系统的任务管理器。

需要注意的是:top命令监控的最小单位是进程,如果想监控更小单位时,就需要用到ps或者netstate命令来满足我们的要求。

2、top命令界面详解

在这里插入图片描述

第一行:任务队列信息

系统当前时间:top - 09:15:52
系统运行时间:up 0 min
当前登录用户:1 user
负载均衡情况:load average: 1.78,0.49,0.17(average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。)

注意:load
average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了

第二行:Tasks — 任务(进程)

总进程:95 total
运行进程:1 running
休眠进程:94 sleeping
停止进程:0 stopped
僵尸进程:0 zombie
这里说一下什么是僵尸进程:

我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。

第三行:cpu状态信息

在这里插入图片描述

0.3 us:用户空间占用CPU的百分比。
0.0 sy:内核空间占用CPU的百分比。
0.0 ni:改变过优先级的进程占用CPU的百分比
99.7 id:空闲CPU百分比
0.0 wa:IO等待占用CPU的百分比
0.0 hi:硬中断占用CPU的百分比
0.0 si:软中断占用CPU的百分比
0.0 st:当Linux系统是在虚拟机中运行时,等待CPU资源的时间占比
用户空间(User space)与内核空间(Kernel space):

简单说,Kernel space 是 Linux 内核的运行空间,User space
是用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响。

Kernel space 可以执行任意命令,调用系统的一切资源; User space
只能执行简单的运算,不能直接调用系统资源,必须通过系统接口(又称 system call),才能向内核发出指令。

第四行:内存状态

在这里插入图片描述

KiB Mem:Kib表示描述单位,MEM表示内存

total:总内存量(4G)
free:空闲内存(2G)
used:已用内存(1G)
buff/cache:缓存内存(307M)

第五行:swap交换分区信息

在这里插入图片描述

KiB Swap:Kib表示描述单位,Swap表示交换分区

total:总内存量(839M)
free:空闲内存(839M)
used:已用内存(0)
avail Mem:可用内存(2G)
什么是交换分区:

类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况;需要注意的是,存储在交换分区的数据性质,在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行

free和avail的区别:

free 是真正尚未被使用的物理内存数量。 available 是应用程序认为可用内存数量,available = free +
buffer + cache (注:只是大概的计算方法)

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

第六行:各进程状态监控

在这里插入图片描述

PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态;R=运行;S=睡眠;T=跟踪/停止;Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)

3、常用操作命令

top [命令参数]

1
常用命令参数为:

-c 显示完整的命令路径
-d <时间> 设置间隔时间
-u <用户名> 指定用户名
-p <进程号> 指定进程
-n <次数> 循环显示的次数
常用命令举例:

# 每隔5秒显式所有进程的资源占用情况
top

# 每隔2秒显式所有进程的资源占用情况
top -d 2  

# 显示进程的命令行参数(默认只有进程名)
top -c  

# 每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -p 12345 -p 6789

# 每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数
top -d 2 -c -p 123456 

# 仅显示用户为root的进程
top -u root

4、界面设置

4.1 编辑基本视图显示列

在top基本视图中,敲击f键进入另一个视图,在这里可以编辑基本视图中的显示字段:
在这里插入图片描述

用上下键选择选项,按下空格键可以决定是否在基本视图中显示这个选项,按esc键退出编辑界面。

4.2 显示进程的绝对路径

在top基本视图中,敲击c键,可以显示进程的路径:
在这里插入图片描述

4.3 杀死某个正在运行的进程

在top基本视图中,敲击k键,可以在不退出top命令的情况下杀死某个正在运行的进程:
在这里插入图片描述

如上图所示,在红框处输入对应的进程号即可。

4.4 高亮显示当前正在运行的进程

在top基本视图中,敲击b键,高亮显示当前正在运行的进程:

在这里插入图片描述

如上图所示,进程号为1698的进程正在运行,对应最上面第二行显示的当前运行进程为1。

4.5 多U多核CPU监控

在top基本视图中,敲击数字1键,可监控每个逻辑CPU的状况,因为我的虚拟机是1核的,这里就不贴图了。

4.6 显示进程个数

在top基本视图中,敲击上下键,可以增减显示的进程数目:
在这里插入图片描述

如上图所示,将进程显示缩减到5个进程。

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

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

相关文章

Science Robotics: 意大利IIT仿生软体机器人实验室研制具有自适应行为的软体生长机器人

FiloBot通过模仿攀爬植物的生长方式——通过在顶端增加材料来构建身体&#xff0c;实现在难以预测和复杂的环境中的导航。这种设计理念的核心在于能够适应多种地形并克服障碍&#xff0c;特别适用于密集森林或杂乱区域这样的非结构化环境。机器人使用添加制造技术&#xff08;特…

【C/C++】C/C++编程——C++ 开发环境搭建

C的开发环境种类繁多&#xff0c;以下是一些常见的C 集成开发环境&#xff1a; AppCode &#xff1a;构建与JetBrains’ IntelliJ IDEA 平台上的用于Objective-C&#xff0c;C,C&#xff0c;Java和Java开发的集成开发环境CLion&#xff1a;来自JetBrains的跨平台的C/C的集成开…

解决git错误:error: failed to push some refs to ‘git xxx xxxx‘

目录 第一章、问题分析1.1&#xff09;报错提示1.2&#xff09;报错分析 第二章、解决方式2.1&#xff09;方式1&#xff1a;直接pull2.2&#xff09;方式2&#xff1a;直接pull2.3&#xff09;方式三 友情提醒: 先看文章目录&#xff0c;大致了解文章知识点结构&#xff0c;点…

2024美赛数学建模思路 - 案例:退火算法

文章目录 1 退火算法原理1.1 物理背景1.2 背后的数学模型 2 退火算法实现2.1 算法流程2.2算法实现 建模资料 ## 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 退火算法原理 1.1 物理背景 在热力学上&a…

Canvas-Editor 实现类似 Word 协同编辑

前言 对于word的协同编辑&#xff0c;已经构思很久了&#xff0c;但是没有找到合适的插件。今天推荐基于canvas/svg 的富文本编辑器 canvas-editor&#xff0c;能实现类似word的基础功能&#xff0c;如果后续有更好的&#xff0c;也会及时更新。 Canvas-Editor 效果图 官方文…

C语言|算术操作符相关题目

下面代码的结果是&#xff1a;( ) #include <stdio.h> int main() {int a, b, c;a 5;c a;b c, c, a, a;b a c;printf("a %d b %d c %d\n:", a, b, c);return 0; }A.a 8 b 23 c 8 B.a 9 b 23 c 8 C.a 9 b 25 c 8 D.a 9 b 24 c 8 解析&…

UART接口简介

UART(UniversalAsynchronousReceiver/Transmitter)&#xff0c;即通用异步收发器&#xff0c;它包括了RS232、RS449、RS423、RS422和RS485等接口标准规范和总线标准规范&#xff0c;即UART是异步串行通信口的总称。而RS232、RS449、RS423、RS422和RS485等&#xff0c;是对应各种…

使用QT写个自用的串口助手

遇到一个默认波特率1.5M的终端设备&#xff0c;看了下手上常用的串口助手竟然没有这个选项&#xff0c;所以干脆自己用QT手撕一个。 开发环境&#xff1a;QT 5.12.0 mingw64 一、创建工程 1、新建创建QMainWindow工程&#xff0c;基类可以选择QMainWindow也可以选择Qwiget&a…

ATF(TF-A)安全通告TF-V11——恶意的SDEI SMC可能导致越界内存读取(CVE-2023-49100)

目录 一、ATF(TF-A)安全通告TFV-11 (CVE-2023-49100) 二、透过事务看本质SDEI是干啥的呢&#xff1f; 三、CVE-2023-49100 1、GICv2 systems 2、GICv3 systems 四、漏洞修复 一、ATF(TF-A)安全通告TFV-11 (CVE-2023-49100) Title 恶意的SDEI SMC可能导致越界内存读取&am…

SwiftUI 打造酷炫流光边框 + 微光滑动闪烁的 3D 透视滚动卡片墙

功能需求 有时候我们希望自己的 App 能向用户展示与众不同、富有创造力的酷炫视觉效果: 如上图所示,我们制作了一款流光边框 + 微光滑动闪烁的 3D 透视卡片滚动效果。这是怎么做到的呢? 在本篇博文中,您将学到以下内容 功能需求1. 3D 透视滚动2. 灵动边框流光效果3. 背景…

np.bincount函数的用法

官网写的非常清晰了&#xff0c; 返回数组的数量比x中的最大值大1&#xff0c;它给出了每个索引值在x中出现的次数。下面&#xff0c;我举个例子让大家更好的理解一下&#xff1a; np.bincount(np.array([0, 1, 1, 3, 2, 1, 7])) array([1, 3, 1, 1, 0, 0, 0, 1])最大值是7&a…

5.3 内容管理模块 - 课程发布、任务调度、页面静态化、熔断降级

内容管理模块 - 课程发布 - 任务调度、熔断降级、页面静态化 文章目录 内容管理模块 - 课程发布 - 任务调度、熔断降级、页面静态化一、课程发布 - 任务调度1.1 添加Maven依赖1.2 XxlJobConfig配置文件1.3 消息处理抽象类 MessageProcessAbstract1.4 课程发布任务类 CoursePubl…

webpack常用配置

1.webpack概念 ​ 本质上&#xff0c;webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时&#xff0c;它会在内部从一个或多个入口点构建一个 依赖图(dependency graph)&#xff0c;然后将你项目中所需的每一个模块组合成一个或多个 …

go语言(十六)----tag

package mainimport ("fmt""reflect" )type resume struct {Name string info:"name" doc:"我的名字"Sex string info:"sex" }func findTag(str interface{}) {t : reflect.TypeOf(str).Elem()for i : 0;i < t.NumField…

Go后端开发 -- 即时通信系统

Go后端开发 – 即时通信系统 文章目录 Go后端开发 -- 即时通信系统一、即时通信系统1.整体框架介绍2.基础server构建3.用户上线及广播功能4.用户消息广播机制5.用户业务封装6.用户在线查询7.修改用户名8.超时强踢9.私聊功能10.完整代码 二、客户端实现1.建立连接2.命令行解析3.…

阿里云幻兽帕鲁服务器租用价格表,免费?

幻兽帕鲁异常火爆自建幻兽帕鲁服务器不卡又稳定&#xff0c;继腾讯云推出幻兽帕鲁自建服务器教程和4核16G幻兽帕鲁专用特价游戏服务器后&#xff0c;阿里云坐不住了&#xff0c;直接推出特价4核32G和4核16G的palworld专属游戏机&#xff0c;另外还可以申请免费3个月的4核8G无影…

C语言或C++通过IShellLinkA创建或解析lnk快捷方式(使用char字符数组)

本例程用到的COM接口有IShellLinkA和IPersistFile。 请注意因为函数参数的类型不为BSTR&#xff0c;所以这两个接口可直接传char *或wchar_t *字符串&#xff0c;不需要提前转化为BSTR类型。 C语言的写法&#xff1a; /* 这个程序只能在C编译器下编译成功, 请确保源文件的扩展…

智慧之光:ChatGPT 引领工作效率新纪元

随着科技的不断发展&#xff0c;人工智能&#xff08;AI&#xff09;已经逐渐融入我们的日常生活和工作中。其中&#xff0c;ChatGPT 作为一种先进的 AI 技术&#xff0c;正逐步改变我们的工作方式&#xff0c;提升我们的工作效率。本文灸哥将介绍如何利用ChatGPT提升工作效率&…

intellij idea怎么设置中文

CtrlAltS快捷键打开Settings界面选择Plugins在搜索部分搜索chinese&#xff0c;选择下方的Chinese&#xff08;simplified&#xff09;Language下载最后重启软件即可

数据结构:完全二叉树(递归实现)

如果完全二叉树的深度为h&#xff0c;那么除了第h层外&#xff0c;其他层的节点个数都是满的&#xff0c;第h层的节点都靠左排列。 完全二叉树的编号方法是从上到下&#xff0c;从左到右&#xff0c;根节点为1号节点&#xff0c;设完全二叉树的节点数为sum&#xff0c;某节点编…