当前位置: 首页 > news >正文

【linux】查看CPU的使用率

命令1:top

top

总体系统信息
  • uptime:系统的运行时间和平均负载。
  • tasks:当前运行的进程和线程数目。
  • CPU:总体 CPU 使用率和各个核心的使用情况。
  • 内存(Memory):总体内存使用情况、可用内存和缓存。

查看 CPU 使用率


以下是一些常用的CPU使用率相关字段:

  • %Cpu(s):显示整个系统的CPU使用率情况,包括用户空间、系统空间和空闲时间的百分比。
  • us:用户空间占用CPU的百分比。
  • sy:系统空间占用CPU的百分比。
  • ni:用户进程的优先级改变(nice)占用CPU的百分比。
  • id:空闲CPU的百分比。
  • wa:等待I/O操作(如磁盘读写)占用CPU的百分比。
用交互命令进行排序
  • P:按照CPU使用率(%CPU)进行排序。
  • M:按照内存使用率进行排序。
  • N:按照进程ID进行排序。
  • T:按照运行时间进行排序。

命令2:mpstat

mpstat

mpstat -P ALL  10

-P ALL 代表的是监控所有CPU,后面数字10代表的是每隔10秒输出一组数据。

命令3:uptime

用于显示系统总共运行了多长时间和系统的平均负载。

最后三个数字 代表的是过去 1分钟,5分钟,15分钟的平均负载

uptime

什么是系统平均负载

  • 平均负载:指的是单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是单位时间内活跃的进程数。
  • 可运行状态进程:指的是正在使用CPU或者正在等待CPU调度的进程,也就是处于Running或Runnable的进程。
  • 不可中断状态进程:指的是正在处于内核态关键流程中的进程,比如最常见的就是调用磁盘的IO读取,简而言之就是当一个进程向磁盘读写数据的时候,为了保证数据的一致性,在得到磁盘回复前,是不能被其他进程或中断打短的,这个时候进程就处于不可中断的状态,如果此时被其他的进程打断就容易出现进程和磁盘中的数据不一致的情况。
     

系统平均负载多少时合理

  • uptime 命令给出的三个时间段的平均负载并不是标准化的,因为系统中 CPU 核心数量是不定的。所以平均负载为 1 味着拥有一个 CPU 核心的系统一直在忙碌,而在一个拥有 8 个 CPU 核心的系统上,意味着系统 87.5% 的时间是空闲的。
  • 当系统平均负载除以 CPU 核心数小于等于 1表示系统没有出现过载的情况。最理想的情况是每个CPU 上都刚好运行一个进程,这样 CPU 就得到了充分的利用。
  • 三个时间段统计出的系统平均负载,我们以哪个数字为准?一分钟?五分钟?还是十五分钟?我们应该着眼于五分钟或者十五分钟的平均数值,如果前一分钟的负载情况是 1.00,那么仍可以说明认定服务器情况还是正常的,但是如果十五分钟的数值仍然保持在 1.00,那么就值得注意了。

平均负载和CPU使用率


有时候我们很容易把平均负载和CPU使用率搞错,其实是不一样的,平均负载指的是单位时间内处于可运行状态或不可中断的进程数,不仅包含了正在使用CPU的进程,还包含等待CPU和等待I/O的进程。而CPU使用率指的是单位时间内CPU的繁忙情况。其实分三种情况

  • CPU密集型进程,使用大量的CPU导致平均负载升高的同时也会导致CPU使用率升高,此时两者是一样的
  • I/O密集型进程,等待I/O会导致平均负载升高,但CPU的使用率不一定升高
  • 大量等待CPU调度的进程也会导致平均负载升高,此时的CPU使用率也会比较高


 

查看系统 CPU 核心数

lscpu

grep 'model name' /proc/cpuinfo | wc -l




http://www.lryc.cn/news/234831.html

相关文章:

  • 【系统稳定性】1.6 黑屏(三)
  • 《使用EasyExcel在Excel中增加序号列的方法》
  • 【Linux】安全审计-audit
  • Linux 之查看标准错误码工具
  • Git企业开发级讲解(五)
  • 目录自动清洗
  • c++实现Any类,让一个类型指向其他任意类型
  • os.path.join函数用法
  • vscode Prettier配置
  • MLC-LLM 支持RWKV-5推理以及对RWKV-5的一些思考
  • WPF中行为与触发器的概念及用法
  • 2023-2024华为ICT大赛-计算赛道-广东省省赛初赛-高职组-部分赛题分析【2023.11.18】
  • 『 MySQL数据库 』数据库之表的约束
  • flink 8081 web页面无法被局域网内其他机器访问
  • 零基础安装分布式数据服务注册系统
  • 2023最新最全【OpenMV】 入门教程
  • 【Java并发编程三】线程的基本使用一
  • 企业邮箱认证指南:安全与高效的邮箱认证方法
  • Django(八、如何开启事务、介绍长见的字段类型和参数)
  • 机器学习第5天:多项式回归与学习曲线
  • MSYS2介绍及工具安装
  • Swift开发中:非逃逸闭包、逃逸闭包、自动闭包的区别
  • 栈结构应用-进制转换-辗转相除法
  • 【Azure 架构师学习笔记】-Azure Storage Account(6)- File Layer
  • idea 环境搭建及运行java后端源码
  • 掌握Shell:从新手到编程大师的Linux之旅
  • 有重复元素的快速排序
  • Bert浅谈
  • 产品运营的场景和运营策略
  • C#异常捕获try catch详细介绍