ubuntu下实时查看CPU,内存(Mem)和GPU的利用率

一、实时查看CPU和内存(Mem)利用率

        htop官网:htop - an interactive process viewer

sudo apt-get install htop
htop

①. 顶部状态栏(System Metrics Overview)

这个区域显示系统的全局资源使用情况,包括:

  • CPU 使用率: 顶部会显示多条表示 CPU 使用情况的条形图,每条代表一个 CPU 核心。不同颜色表示不同类型的 CPU 负载:

    • 绿色:用户进程使用的 CPU(user)
    • 红色:内核进程使用的 CPU(system)
    • 蓝色:低优先级进程使用的 CPU(nice)
    • 黄色:I/O 等待(iowait)
    • 灰色:虚拟 CPU 使用(steal time)
  • 内存(Mem): 显示当前的物理内存使用情况,条形图及具体的数值会告诉你内存的已使用、缓存和可用内存数量。

  • 交换区(Swap): 显示系统交换区的使用情况(如果物理内存不足时,系统会将部分数据放入交换区)。条形图和数值显示交换空间的已用和剩余量。

②. 任务和负载信息(Load Average and Uptime)

这个区域紧接着 CPU、内存和交换区的显示之后,主要展示以下内容:

  • 任务(Tasks): 显示系统上正在运行的任务(进程)数量和状态信息,包括正在运行、睡眠、停止等进程数目。
  • 负载平均值(Load Average): 显示系统的负载平均值,分别为最近1分钟、5分钟和15分钟的平均负载。
  • 系统运行时间(Uptime): 显示系统已运行的总时间。

③. 进程列表(Processes List)

这是 htop 窗口中最核心的部分,显示系统中所有运行中的进程,每一行代表一个进程。每个进程行通常包含以下信息:

  • PID: 进程的唯一标识符(进程 ID)。
  • User: 运行该进程的用户。
  • Priority(PRI): 进程的优先级,数值越小,优先级越高。
  • Nice(NI): 进程的 nice 值,调整进程的调度优先级。
  • VIRT: 进程虚拟内存的总量。
  • RES: 进程实际使用的物理内存量。
  • SHR: 进程共享内存的大小。
  • S: 进程的状态,常见的状态有:
    • R:Running,进程正在运行。
    • S:Sleeping,进程在休眠状态。
    • D:Uninterruptible sleep,无法中断的睡眠状态(通常是 I/O 操作)。
    • Z:Zombie,僵尸进程,已终止但未清理。
    • T:Stopped,进程已停止。
  • %CPU: 进程当前占用的 CPU 百分比。
  • %MEM: 进程当前占用的物理内存百分比。
  • TIME+: 进程消耗的 CPU 总时间(格式为时:分:秒)。
  • Command: 进程执行的命令名称或路径。

④. 底部功能键(Interactive Commands)

htop 提供了许多快捷键,底部通常会显示一些常用的快捷键提示:

  • F1(Help): 显示帮助菜单,解释所有可用的键盘快捷键。
  • F2(Setup): 进入设置界面,可以调整显示颜色、排序方式等。
  • F3(Search): 搜索进程,可以按名称、PID 等。
  • F4(Filter): 过滤进程,显示符合过滤条件的进程。
  • F5(Tree): 以树形结构显示进程,展示进程之间的父子关系。
  • F6(Sort by): 选择排序方式(区域③中会以蓝色显示),比如按 CPU、内存使用量等排序。
  • F7(Nice-): 降低进程的优先级(增加 nice 值)。
  • F8(Nice+): 提高进程的优先级(减少 nice 值)。
  • F9(Kill): 终止选中的进程。
  • F10(Quit): 退出 htop

        注意:经研究发现,htop 会把一个进程里的线程当做一个进程来显示出来,上图中的 google chrome 一共有 n 个线程,所以 htop 显示了多个进程。这个特性对于分析进程性能很不有利, 所以我们要关掉它。

  1. F2 打开设置
  2. 用鼠标选择 Display options -> Hide userland threads ,当看到该选项前面的 [ ] 中有一个 x 号时,按 F10 确认。

        确认后,在 htop 的进程列表里就看不见一堆重复的进程了。

二、实时查看GPU的利用率

        使用 nvidia-smi 命令查看 GPU 利用率,但是这个命令只能显示一帧,如果要实时显示,需要配合watch命令, 一秒钟刷新一次 nvidia-smi 命令   

watch -n 1 nvidia-smi 
  • watch:这是一个 Linux 命令,用于周期性地执行指定的命令,并将其输出显示在终端上。默认情况下,它会每两秒刷新一次输出。

  • -n 1:这是 watch 命令的一个选项,表示设置刷新间隔为1秒。换句话说,watch 每隔1秒钟重新运行一次指定的命令,并更新显示的结果。

  • nvidia-smi:这是 NVIDIA 提供的一个命令,用于显示 GPU 的实时信息,包括显卡的温度、功耗、显存使用率、GPU 负载等。它常用于监控 NVIDIA GPU 的运行状态。

①. 顶部信息部分(General System Information)

在输出的顶部,展示系统和驱动程序的全局信息,包括:

  • NVIDIA-SMI Versionnvidia-smi 工具的版本号。
  • Driver Version:当前安装的 NVIDIA 驱动程序版本。确保驱动程序版本与 CUDA 工具包兼容是非常重要的。
  • CUDA Version:显示当前支持的 CUDA 版本,这是 NVIDIA 的并行计算平台和 API,用于加速深度学习等任务。

②. GPU 信息表(GPU Information Table)

在这一部分,列出了每个已安装的 GPU 及其状态。表格的每一行代表一张 GPU,包含以下字段:

GPU:每个 GPU 在系统中的编号,通常从 0 开始,表示 GPU 在系统中的索引号。

Name:显卡的型号名称,例如 Tesla V100RTX 3090 等,表示具体的显卡型号。

Persistence-M (持久性模式)

  • On:GPU 即使没有任务时也保持初始化状态,减少任务启动延迟。
  • Off:GPU 在没有任务时进入未初始化状态,节省功耗。

Bus-Id:GPU 连接到主板的 PCI 总线 ID,格式为 Domain:Bus:Device.Function,如 00000000:00:1C.0。这个字段在多 GPU 系统中很有用。

Disp.A (Display Active):显示该 GPU 是否用于驱动显示器:

  • On:GPU 正用于驱动显示器。
  • Off:GPU 未连接到显示器,通常在服务器或计算节点上为 Off。

Volatile Uncorr. ECC (Volatile Uncorrectable ECC Errors):GPU 的内存中不可修正的 ECC 错误计数:

  • 0:没有检测到不可修正的 ECC 错误,这是理想状态。
  • >0:有不可修正的 ECC 错误,可能导致数据计算错误。ECC 是 Error-Correcting Code,用于保证 GPU 计算的准确性。
  • N/A:该 GPU 不支持 ECC(Error-Correcting Code)功能

Fan (风扇速度):当前 GPU 风扇的运行速度,单位为百分比(%)。这个值会根据 GPU 温度和负载动态调整,N/A 表示没有独立风扇或者风扇信息不可用。

Temp (温度):GPU 当前温度,单位为摄氏度(°C)。理想温度通常在 30°C 到 85°C 之间,过高温度可能导致性能下降或硬件损坏。

Perf (性能状态):GPU 的性能状态(P-State),范围从 P0P12

  • P0:最高性能状态,表示 GPU 正在满负荷运转。
  • P12:最低性能状态,表示 GPU 几乎处于闲置状态。
Pwr: Usage/Cap(功耗 / 最大功耗)
  • Usage:GPU 当前的功耗,单位为瓦特(W)。
  • Cap:该 GPU 允许的最大功耗。实际功耗在任务执行过程中会动态变化,最大功耗由硬件或 BIOS 设定。
Memory-Usage(显存使用情况)
  • Used:当前 GPU 正在使用的显存量。
  • Total:GPU 的总显存量。
  • 显存使用率反映了计算任务对显存的需求,高密集型任务(如深度学习模型训练)会占用大量显存。

GPU-Util(GPU 利用率 %):GPU 的当前利用率,以百分比显示。这个值越高,表示 GPU 的负载越重:

  • 0-10%:空闲或负载极低。
  • 100%:GPU 处于满负荷运转状态。

Compute M. (计算模式):定义了 GPU 如何与多个应用程序共享计算资源

  • Default:默认计算模式,多个进程可以同时访问 GPU 的计算资源。这是大多数应用场景的默认模式,允许多个任务共享 GPU。

  • Exclusive Process:在这个模式下,只有一个进程能够使用 GPU 的计算资源,但该进程可以有多个线程。这种模式通常用于防止不同进程之间的竞争,提高性能的一致性。

  • Exclusive Thread:更严格的模式,只有一个线程能够访问 GPU。这种模式不常用。

  • Prohibited:禁止使用 GPU 的计算资源。在这个模式下,GPU 不能执行任何计算任务。这种模式下,GPU 只能用于显示输出。

MIG M.(多实例 GPU 模式):NVIDIA A100 和其他 Ampere 架构 GPU 引入的一项新功能

  • Enabled:表示 MIG 模式已启用。在启用 MIG 的情况下,一张 GPU 可以分割为多个逻辑 GPU,每个逻辑 GPU 分配固定的计算和显存资源。这允许多个用户或应用程序独立使用 GPU,避免资源竞争。

  • Disabled:表示 MIG 模式未启用。GPU 以传统方式运作,作为单一计算单元使用。

  • N/A:该 GPU 不支持 MIG 模式。例如,只有支持 MIG 的 NVIDIA GPU(如 A100 或 H100)才会显示 MIG 相关的信息,而其他不支持的 GPU 显示 N/A

③. 进程列表(Processes Section)

在 GPU 信息表的下方,显示当前使用 GPU 资源的进程信息。包括:

GPU :显示每个 GPU 的编号,表示进程在哪个 GPU 上运行。

PID (进程 ID):进程的唯一标识符,可以用来进一步排查系统中运行的进程或调试特定任务。

Type (进程类型):进程的类型:

  • C(Compute):表示计算任务,通常是深度学习或并行计算任务。
  • G(Graphics):表示图形任务。
  • V(Video):表示视频任务,例如视频编码或解码。

Process Name (进程名称):显示正在运行的进程名称或路径,如 /usr/bin/python,用于识别具体的应用程序或任务。

GPU Memory Usage(显存使用量):该进程使用的显存量,单位为 MiB(Mebibytes)。如果多个进程同时运行,显存可能被多个进程共享。

参考

        Linux查看CPU状态:htop命令

        为什么htop显示比ps更多的进程​​​​​​​

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaSE——集合12:Map接口实现类—Properties

目录 一、Properties基本介绍 二、Properties常用方法 一、Properties基本介绍 Properties类继承自HashTable类并且实现了Map接口,也是使用一种键值对的形式,来保存数据。Properties的使用特点和HashTable类似Properties还可以用于从xxx.properties文件…

【实践】快速学会使用阿里云消息队列RabbitMQ版

文章目录 1、场景简介2、实验架构和流程2.1、实验架构2.2、实验流程 3、创建实验资源4、创建阿里云AccessKey5、创建静态用户名密码6、创建Vhost、Exchange、Queue并绑定关系6.1、Vhost 的作用6.2、创建Vhost6.3、Exchange 的作用6.4、创建Exchange6.5、Queue 的作用6.6、创建Q…

基于Python flask的豆瓣电影可视化系统,豆瓣电影爬虫系统

博主介绍:✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不…

Mysql(七) --- 索引

文章目录 前言1.简介1.1.索引是什么?1.2.为什么使用索引? 2.索引应该使用什么数据结构?2.1.Hash2.2.二叉搜索树2.3.N叉树2.4.B树2.4.1. 简介2.4.2. B树的特点2.4.3. B树和B树的对比 3.Mysql中的页3.1.为什么要使用页3.2.页文件头和页文件尾3.3.页主体3.…

【Linux】解锁线程基本概念和线程控制,步入多线程学习的大门

目录 1、线程初识 1.1线程的概念 1.2.关于线程和进程的进一步理解 1.3.线程的设计理念 1.4.进程vs线程(图解) 1.5地址空间的第四谈 2.线程的控制: 2.1.关于线程控制的前置知识 2.2创建线程的系统调用: 这个几号手册具体…

JavaScript | 定时器(setInterval和clearInterval)的使用

效果图如下&#xff1a; 当用户第一次看到这个页面时&#xff0c;按钮是不可点击的&#xff0c;并显示一个5秒的倒计时。倒计时结束后&#xff0c;按钮变为可点击状态&#xff0c;并显示“同意协议”。这样做的目的是确保用户有足够的时间阅读用户协议。 <!DOCTYPE html>…

机器学习:知识蒸馏(Knowledge Distillation,KD)

知识蒸馏&#xff08;Knowledge Distillation&#xff0c;KD&#xff09;作为深度学习领域中的一种模型压缩技术&#xff0c;主要用于将大规模、复杂的神经网络模型&#xff08;即教师模型&#xff09;压缩为较小的、轻量化的模型&#xff08;即学生模型&#xff09;。在实际应…

Vue(3) 组件

文章目录 对组件的理解单文件组件非单文件组件基本使用几个注意点组件的嵌套VueComponent构造函数一个重要的内置关系 组件的自定义事件全局事件总线安装全局事件总线使用事件总线解绑事件消息订阅与发布简介使用步骤范例 $nextTick插槽1.默认插槽2.具名插槽作用域插槽 对组件的…

[linux 驱动]网络设备驱动详解

目录 1 描述 2 结构体 2.1 net_device 2.2 sk_buff 2.3 net_device_ops 2.4 ethtool_ops 3 相关函数 3.1 网络协议接口层 3.1.1 dev_queue_xmit 3.1.2 netif_rx 3.1.3 alloc_skb 3.1.4 kfree_skb 3.1.5 skb_put 3.1.6 skb_push 3.1.7 skb_reserve 3.2 网络设备驱…

使用OpenCV实现基于EigenFaces的人脸识别

引言 人脸识别技术近年来得到了飞速的发展&#xff0c;它被广泛应用于安全监控、门禁系统、智能设备等领域。其中&#xff0c;基于特征脸&#xff08;EigenFaces&#xff09;的方法是最早期且较为经典的人脸识别算法之一。本文将介绍如何使用Python和OpenCV库实现一个简单的人…

AI大模型面经——以医疗领域为例,整理RAG基础与实际应用中的痛点

前言 谈到大模型在各垂直领域中的应用&#xff0c;一定离不开RAG&#xff0c;本系列开始分享一些RAG相关使用经验&#xff0c;可以帮助大家在效果不理想的时候找到方向排查或者优化。 本系列以医疗领域为例&#xff0c;用面试题的形式讲解RAG相关知识&#xff0c;开始RAG系列…

Spring与Spring Boot之间的区别

Spring和Spring Boot是用于开发Java企业应用的两个主流框架。虽然它们都属于Spring生态系统的一部分&#xff0c;但是它们各自有不同的使用场景和特点。 在本文中&#xff0c;我们将探讨Spring与Spring Boot之间的差异&#xff0c;针对他们之间特性的差异&#xff0c;做一个详…

windows10系统-在线设置账户有效期

.a.打开微软官网 点击右上角的登录按钮 .b.输入自己idea账户名&#xff0c;然后点击下一步 .c.使用邮箱接收验证码 输入验证码->登录 .d.点击右上角的个人账户->我的 Microsoft 账户 .e.点击更改密码即可 .f.修改完密码之后&#xff0c;点击保存即可。 微软的在线账户和…

XGBoost回归预测 | MATLAB实现XGBoost极限梯度提升树多输入单输出

回归预测 | MATLAB实现XGBoost极限梯度提升树多输入单输出 目录 回归预测 | MATLAB实现XGBoost极限梯度提升树多输入单输出预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 XGBoost的全称是eXtreme Gradient Boosting,它是经过优化的分布式梯度提升库,旨在高效、…

【python学习】1-1 python软件安装

1。搜索python官网&#xff0c;点击下载进行下载安装包。 2.双击.exe文件&#xff0c;如图步骤 3.winR输入cmd&#xff0c;在弹出黑框中输入python显示如图安装好。

linux线程 | 同步与互斥(上)

前言&#xff1a;本节内容主要是线程的同步与互斥。 本篇文章的主要内容都在讲解互斥的相关以及周边的知识。大体的讲解思路是通过数据不一致问题引出锁。 然后谈锁的使用以及申请锁释放锁的原子性问题。 那么&#xff0c; 废话不多说&#xff0c; 现在开始我们的学习吧&#x…

基于element-ui的upload组件与阿里云oss对象存储的文件上传(采用服务端签名后直传的方式)

服务端签名后直传图解 步骤 1 开通阿里云OSS对象存储服务&#xff0c;创建新的Bucket 2 创建子账户获取密钥 创建用户 添加权限 后端 1 新建一个第三方服务的模块 third-party pom文件 <?xml version"1.0" encoding"UTF-8"?> <project x…

【工程测试技术】第4章 常用传感器分类,机械式,电阻式,电容式,电感式,光电式传感器

上理考研周导师的哔哩哔哩频道 我在频道里讲课哦 目录 4.1 常用传感器分类 4.2 机械式传感器及仪器 4.3 电阻式、电容式与电感式传感器 1.变阻器式传感器 2.电阻应变式传感器 3.固态压阻式传感器 4.典型动态电阻应变仪 4.3.2 电容式传感器 1.变换原理 2.测量电路 …

ScriptableObject基本使用

使用方法 自定义类继承ScriptableObject 可以在类内部增加数据或者数据类&#xff0c;一般用于配置 注意事项 给继承ScriptableObject的类增加CreateAssetMenu特性。 CreateAssetMenu一般默认三个参数 第一个参数是父目录 第二个参数是父目录的子选项 第三个参数是可以…

[瑞吉外卖]-05菜品模块

文件上传下载 介绍 文件上传也称为upload&#xff0c;是指将本地图片、视频、音频等文件上传到服务器上, 可以供其他用户浏览或下载 前端组件库提供了上传组件&#xff0c;但是底层原理还是基于form表单的文件上传。 服务端要接收客户端上传的文件&#xff0c;通常都会使用Ap…