Linux系统命令:监控 CPU 性能的工具mpstat详解

目录

一、概述

二、语法和使用

1、基本语法

2、常用选项

三、安装 mpstat

1、Debian(如 Ubuntu)的系统安装

2、CentOS 或 Fedora系统的安装

(1)安装指令

(2)安装操作

3、使用

四、示例

1. 查看所有 CPU 的统计信息

2. 查看特定 CPU(如 CPU0)的统计信息

3. 每 2 秒更新一次,共更新 5 次

4. 仅显示用户态和空闲态的 CPU 使用率  

  5、查看所有处理器的使用情况

五、输出解释


一、概述

        mpstat 是一个在 Linux 系统中常用的工具,用于显示 CPU 的统计信息,包括每个 CPU 核心的使用率等。这个工具是 sysstat 包的一部分,sysstat 是一个收集、报告系统活动信息的软件包,包括 CPU、内存、I/O、网络等使用情况。

        mpstat 特别设计用于多处理器(MP)系统,它可以提供每个处理器以及整个系统的 CPU 利用率详情。

二、语法和使用

1、基本语法

        mpstat 的基本语法如下:

                mpstat [选项] [间隔秒数] [次数]

  • [选项]:可以指定不同的参数来控制输出的格式和内容。
  • [间隔秒数]:指定报告之间的时间间隔。
  • [次数]:指定要生成多少次报告。

2、常用选项

        - -P ALL|CPU:指定要显示统计信息的 CPU。ALL 表示所有 CPU,CPU(如 CPU0)表示特定编号的 CPU。

        - -I {SUM|CPU|SCPU|NCPU}:指定要显示的统计信息类型。默认是 CPU,表示每个 CPU 的统计信息。

        - -u:仅显示用户态的 CPU 使用率。

        - -s:仅显示系统态的 CPU 使用率。

        - -i:仅显示空闲态的 CPU 使用率。

        - -w:仅显示 I/O 等待的 CPU 使用率。

        - -n:指定更新的次数。例如,-n 3 表示更新 3 次后退出。

        - -d:显示 CPU 空闲时间百分比。

        - -t:在输出中包含时间戳。

三、安装 mpstat

1、Debian(如 Ubuntu)的系统安装

        在大多数 Linux 发行版中,mpstat 可能已经预装,或者可以通过包管理器安装。例如,在基于 Debian(如 Ubuntu)的系统中,可以使用以下命令安装:

        sudo apt-get update

        sudo apt-get install sysstat

2、CentOS 或 Fedora系统的安装

(1)安装指令

        在基于 RPM 的系统(如 CentOS 或 Fedora)中,可以使用:

        sudo yum install sysstat   CentOS 7 或更早版本

        sudo dnf install sysstat   Fedora 或 CentOS 8 及更新版本

(2)安装操作

        以centos7的安装为例,如下所示:

[root@ecs-52a1 121yunwei]# mpstat
bash: mpstat: command not found
[root@ecs-52a1 121yunwei]#
[root@ecs-52a1 121yunwei]#
[root@ecs-52a1 121yunwei]# sudo yum install sysstat
Loaded plugins: fastestmirror
Determining fastest mirrorsbase: mirrors.aliyun.comextras: mirrors.aliyun.comupdates: mirrors.aliyun.com
base                                                                                                                                   | 3.6 kB  00:00:00
epel                                                                                                                                   | 4.3 kB  00:00:00
extras                                                                                                                                 | 2.9 kB  00:00:00
updates                                                                                                                                | 2.9 kB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package sysstat.x86_64 0:10.1.5-20.el7_9 will be installed
--> Processing Dependency: libsensors.so.4()(64bit) for package: sysstat-10.1.5-20.el7_9.x86_64
--> Running transaction check
---> Package lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7_9.1 will be installed
--> Finished Dependency ResolutionDependencies Resolved==============================================================================================================================================================Package                              Arch                        Version                                                  Repository                    Size
==============================================================================================================================================================
Installing:sysstat                              x86_64                      10.1.5-20.el7_9                                          updates                      315 k
Installing for dependencies:lm_sensors-libs                      x86_64                      3.4.0-8.20160601gitf9185e5.el7_9.1                       updates                       42 kTransaction Summary
==============================================================================================================================================================
Install  1 Package (+1 Dependent package)Total download size: 357 k
Installed size: 1.2 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7_9.1.x86_64.rpm                                                                   |  42 kB  00:00:00
sysstat-10.1.5-20.el7_9.x86_64 FAILED
http://mirrors.aliyuncs.com/centos/7/updates/x86_64/Packages/sysstat-10.1.5-20.el7_9.x86_64.rpm: [Errno 12] Timeout on http://mirrors.aliyuncs.com/centos/7/updates/x86_64/Packages/sysstat-10.1.5-20.el7_9.x86_64.rpm: (28, 'Connection timed out after 30001 milliseconds')
Trying other mirror.
(2/2): sysstat-10.1.5-20.el7_9.x86_64.rpm                                                                                              | 315 kB  00:00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                          12 kB/s | 357 kB  00:00:30
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7_9.1.x86_64                                                                                  1/2Installing : sysstat-10.1.5-20.el7_9.x86_64                                                                                                             2/2Verifying  : sysstat-10.1.5-20.el7_9.x86_64                                                                                                             1/2Verifying  : lm_sensors-libs-3.4.0-8.20160601gitf9185e5.el7_9.1.x86_64                                                                                  2/2Installed:sysstat.x86_64 0:10.1.5-20.el7_9Dependency Installed:lm_sensors-libs.x86_64 0:3.4.0-8.20160601gitf9185e5.el7_9.1Complete!
[root@ecs-52a1 121yunwei]#

3、使用

        安装完成后,可以直接运行 mpstat 命令来查看 CPU 统计信息。默认情况下,mpstat 会显示所有 CPU 的统计信息,并每秒更新一次。

        mpstat

        实际操作结果如下:

[121yunwei@ecs-52a1 ~]$ mpstat -P ALL 5 3
Linux 3.10.0-1160.108.1.el7.x86_64 (ecs-52a1)   07/20/2024      _x86_64_        (4 CPU)09:46:30 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
09:46:35 PM  all    2.32    0.00    4.34    0.10    0.00    0.00    0.00    0.00    0.00   93.24
09:46:35 PM    0    1.42    0.00    2.83    0.00    0.00    0.00    0.00    0.00    0.00   95.75
09:46:35 PM    1    3.03    0.00    5.66    0.00    0.00    0.00    0.00    0.00    0.00   91.31
09:46:35 PM    2    1.42    0.00    2.63    0.20    0.00    0.00    0.00    0.00    0.00   95.75
09:46:35 PM    3    3.22    0.00    6.04    0.00    0.00    0.00    0.00    0.00    0.00   90.7409:46:35 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
09:46:40 PM  all    2.17    0.00    4.39    0.05    0.00    0.00    0.00    0.00    0.00   93.40
09:46:40 PM    0    1.41    0.00    2.82    0.20    0.00    0.00    0.00    0.00    0.00   95.56
09:46:40 PM    1    3.21    0.00    6.21    0.00    0.00    0.00    0.00    0.00    0.00   90.58
09:46:40 PM    2    1.21    0.00    2.63    0.20    0.00    0.00    0.00    0.00    0.00   95.96
09:46:40 PM    3    3.02    0.00    6.04    0.00    0.00    0.00    0.00    0.00    0.00   90.95
^CAverage:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all    2.24    0.00    4.36    0.08    0.00    0.00    0.00    0.00    0.00   93.32
Average:       0    1.41    0.00    2.83    0.10    0.00    0.00    0.00    0.00    0.00   95.66
Average:       1    3.12    0.00    5.94    0.00    0.00    0.00    0.00    0.00    0.00   90.95
Average:       2    1.31    0.00    2.63    0.20    0.00    0.00    0.00    0.00    0.00   95.85
Average:       3    3.12    0.00    6.04    0.00    0.00    0.00    0.00    0.00    0.00   90.85
[121yunwei@ecs-52a1 ~]$ 

四、示例

1. 查看所有 CPU 的统计信息

        mpstat

2. 查看特定 CPU(如 CPU0)的统计信息

        mpstat -P CPU0

3. 每 2 秒更新一次,共更新 5 次

        mpstat -n 5 2

4. 仅显示用户态和空闲态的 CPU 使用率  

        mpstat -u -i

  5、查看所有处理器的使用情况

        如果想查看所有处理器的使用情况,并每 5 秒输出一次,共输出 3 次,可以使用以下命令:

        mpstat -P ALL 5 3

这将显示每个处理器的使用情况,以及整体的 CPU 使用率统计。

五、输出解释

mpstat 的输出通常包括多个列,每列代表不同的统计信息,如:

        %usr(用户态 CPU 使用率)、

        %nice(低优先级用户态 CPU 使用率)、

        %sys(系统态 CPU 使用率)、

        %iowait(I/O 等待时间百分比)、

        %irq(硬中断时间百分比)、

        %soft(软中断时间百分比)、

        %steal(虚拟化环境中,其他操作系统占用该虚拟 CPU 的时间百分比)、

        %guest(在虚拟 CPU 上运行虚拟机的时间百分比)、

        %gnice(低优先级虚拟 CPU 时间百分比)、

        %idle(空闲时间百分比)等。

        通过这些信息,可以了解系统在不同方面的性能表现,进而进行性能调优或故障诊断。

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

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

相关文章

【人工智能】Python实现文本转换为语音:使用gTTS库实现

🔥 个人主页:空白诗 文章目录 一、引言二、准备工作三、使用gTTS实现文本转换为语音详细步骤 四、人工智能与TTS技术五、总结 一、引言 文本转换为语音(Text-to-Speech,简称TTS)技术是人工智能的重要组成部分&#xf…

Unity UGUI 之 Canvas画布

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 1.UGUI是什么 首先官方手册导向了这两个连接,里面是ugui的基本教程 帆布 |U…

【C语言】 链表实现学生管理系统(堆区开辟空间)

总体思路都能写出来,问题是感觉稍微比之前的麻烦一些,在刚开始创建结构体的时候,并没有去按照链表的思路去写,导致写成了顺序表,后面就一直纠结空间怎么开辟。 链表是由一个头节点和其它申请出来的小节点连起来的&…

统计一个页面用到的html,css,js

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>统计html</title><style>* {margin: …

Web前端知识视频教程分享(四) jQuery

资料下载地址: https://545c.com/f/45573183-1334618723-883dfe?p7526 (访问密码: 7526)

【有效验证】解决SQLyog连接MYSQL的错误 1251 - Client does not support

目录 一、原因分析&#xff1a; 二、进入到mysql 三、查看当前加密方式 四、更改加密方式 五、查看是否成功 前言&#xff1a;使用一个开源软件使用sqlyog、navcat都报1251错误&#xff0c;网上都是提示升级客户端&#xff0c;还有一种就是修改mysql配置。本文就是修改配置…

虚拟机OP的LAN网口设置

问题&#xff1a;unraid通过虚拟机安装OP&#xff0c;然而一个网口连接路由器&#xff0c;总是无法为其他设备提供DHCP&#xff0c;导致无法使用。 一、虚拟机OP配置 二、OP内部配置 对于Lan网口&#xff0c;启用强制&#xff0c;这样可以防止OP被网口接的路由器产生冲突 三、…

认识接口测试

接口测试为什么重要&#xff1f; 我相信你一定听说过这样一句话&#xff1a;“测试要尽早介入&#xff0c;测试进行得越早&#xff0c;软件开发的成本就越低&#xff0c;就越能更好地保证软件质量。” 但是如何尽早地进入测试&#xff0c;作为软件测试的你&#xff0c;是不是…

web自动化测试

自动化测试理论 UI&#xff1a;User Interface&#xff08;用户接口-用户界面&#xff09;&#xff0c;主要包括&#xff1a;app、web ui自动化测试&#xff1a;使用工具或代码执行用例的过程 什么样的项目适合做自动化 1、需要回归测试项目&#xff08;甲方自营项目、金融、…

IPS(入侵防御)和AS(反病毒)的总结

目录 IAE引擎 深度行为检测技术 深度包检测 DPI 深度包检测的分类 1&#xff0c;基于特征字的检测技术 2&#xff0c;基于应用网关的检测技术 3&#xff0c;基于行为模式的检测技术 深度流检测 DFI DPI和DFI的对比 IPS&#xff08;入侵防御&#xff09; 入侵检测 IDS 入侵防御…

5.串口通信

串口的介绍 UART&#xff08;通用异步收发器&#xff09;是一种双向、串行、异步的通信总线&#xff0c;仅用一根数据接收线&#xff08;RX&#xff09;和一根数据发送线&#xff08;TX&#xff09;就能实现全双工通信 R&#xff1a;Receiver(接收)&#xff0c;T&#xff1a;T…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 中文分词模拟器(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…

浅谈Canal原理

canal [kə’nl]&#xff0c;译意为水道/管道/沟渠&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据 订阅 和 消费。应该是阿里云DTS&#xff08;Data Transfer Service&#xff09;的开源版本。 Canal与DTS提供的功能基本相似&#xff1a; 基于…

vue2学习笔记9 - 通过观察vue实例中的data,理解Vue中的数据代理

接着上一节&#xff0c;学一学vue中的数据代理。学vue这几天&#xff0c;最大的感受就是&#xff0c;名词众多&#xff0c;听得发懵。。不过&#xff0c;深入理解之后&#xff0c;其实说得都是一回事。 在Vue中&#xff0c;数据代理是指在实例化Vue对象时&#xff0c;将data对…

神经网络模型实现(训练、测试)

目录 一、神经网络骨架&#xff1a;二、卷积操作&#xff1a;三、卷积层&#xff1a;四、池化层&#xff1a;五、激活函数&#xff08;以ReLU为例&#xff09;&#xff1a;六、模型搭建&#xff1a;七、损失函数、梯度下降&#xff1a;八、模型保存与加载&#xff1a;九、模型训…

基于RFID的课堂签到系统设计

1.简介 基于RFID的课堂签到系统设计是一种利用无线射频识别&#xff08;RFID&#xff09;技术实现课堂自动签到的系统。这种系统通过RFID标签&#xff08;通常是学生携带的卡片或手环等&#xff09;与安装在教室内的RFID读写器之间的无线电信号进行数据交换&#xff0c;从而实现…

移动设备安全革命:应对威胁与解决方案

移动设备已成为我们日常工作和家庭生活中不可或缺的工具&#xff0c;然而&#xff0c;对于它们安全性的关注和投资仍然远远不够。本文深入分析了移动设备安全的发展轨迹、目前面临的威胁态势&#xff0c;以及业界对于这些安全漏洞响应迟缓的深层原因。文中还探讨了人们在心理层…

Java跨平台的原理是什么?JDK,JRE,JVM三者的作用和区别?xxx.java和xxx.class有什么区别?看这一篇就够了

目录 1. Java跨平台相关问题 1.1 什么是跨平台(平台无关性)&#xff1f; 1.2 跨平台(平台无关性)的好处&#xff1f; 1.3 编译原理基础&#xff08;Java程序编译过程&#xff09; 1.4Java跨平台的是实现原理&#xff1f; 1.4.1 JVM(Java虚拟机) 1.4.2 Class文件 1.4.3 …

485开关量采集模块16路I/O输入输出ModbusRTU协议—DAM-3950A

品牌&#xff1a;阿尔泰科技 型号&#xff1a;DAM-3950A 概述&#xff1a; DAM-3950A为16路隔离数字量输入&#xff0c;6路C型10路A型信号继电器输出模块&#xff0c;RS485通讯接口&#xff0c;带有标准ModbusRTU协议。配备良好的人机交互界面&#xff0c;使用方便&#xff…

Linux 文件安装的mysql 启动

1、找到my.cnf 2、确定文件类容&#xff1a; 并确保这些重要的配置&#xff1a;basedir 、datadir、socket 文件或目录都存在 3、找到mysqld 位置 4、启动mysqld mysqld --defaults-file/etc/my.cnf --usermysql