1、mpstat概述

mpstat (multiprocessor state) 可以查看所有cpu的平均负载,也可以查看指定cpu的负载。所以mpstat其实就是主要查看CPU负载的一个工具。是一款常用的多核CPU性能分析工具,用来实时查询每个CPU的性能指标,以及所有CPU的平均指标。

2、mpstat安装

它是Linux性能工具集sysstat中的一个工具,所以我们要装上sysstat,安装方法随不同的系统略有不同,sysstat是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据,比如:CPU 使用率、硬盘和网络吞吐数据,这些数据的收集和分析,有利于我们判断系统是否正常运行

yum install sysstat -y

3、语法

命令语法格式:

mpstat [-P {cpu|ALL}] [interval [count]]
  • -P: 指定要监控哪个CPU,范围是[0 ~ n-1], ALL表示监控所有CPU都监控
  • internal: 相邻两次采样的间隔时间
  • count: 采样次数。

4、显示参数描述

显示参数 描述

  • CPU 显示的是某个CPU 还是全部CPU all=全部
  • %usr 表示用户所有使用的CPU百分比
  • %nice 表示使用 nice 值的 CPU 的百分比。
  • %sys 表示内核进程使用的 CPU 百分比。
  • %iowait 表示等待进行 I/O 所使用的 CPU 时间百分比。
  • %irq 表示用于处理系统中断的CPU百分比
  • %soft 表示用于软件中断的CPU百分比
  • %steal 虚拟机强制CPU等待的时间百分比
  • %guest 虚拟机占用CPU时间的百分比
  • %gnice CPU运行niced guest虚拟机所花费的时间百分比
  • %idle CPU的空闲时间的百分

5、平均负载理解

平均负载不是CPU的使用率,和CPU的使用率没有直接关系。它指的是单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。

所谓的可运行状态,就是用ps命令看到的R状态,它指的是正在使用CPU和正在等待CPU的进程。
所谓的不可中断状态,就是正处于内核状态关键流程的进程,并且这些流程是不可打断的,比如等待硬件设备I/O响应,也就是ps中看到的D状态的进程。
既然是平均活跃进程数,那么最理想的,就是每个CPU上都刚好运行着一个进程,这样每个CPU都得到了充分的利用。

比如当平均负载为2时:

  • 在2个CPU的系统上,意味着每个CPU刚好被占完。
  • 在4个CPU的系统上,意味着每个CPU只占50%。
  • 在1个CPU的系统上,意味着有一半的进程竞争不到CPU。

6、平均负载到底多少比较合适呢?

前面我们说到,平均负载最理想等于CPU个数,所以要判断平均负载,就先得知道有几个CPU

有了这个数据,如果平均负载大于CPU个数,说明过载了。

不过,平均负载有三个值,我们改参考哪一个呢?其实我们应该根据这三个值来判断系统负载的趋势。

一般在工作中,当平均负载高于70%时,我们根据系统负载的历史数据,判断变化趋势,来排查问题。

7、平均负载和CPU使用率的关系

平均负载不仅包含正在使用CPU的进程,还包括等待CPU和等待IO的进程。而CPU的使用率,是单位时间内CPU的繁忙情况,跟平均负载不一定完全对应,比如:

  • 1,计算密集型进程,会大量使用CPU导致平均负载增高,这时,平均负载和CPU使用率两者一致。
  • 2,I/O密集型进程,等待I/O导致负载很高,但CPU使用率不一定高。
  • 3,大量等待CPU的进程调度也会导致平均负载增高,此时CPU的使用率也会比较

参考文章,特别好,推荐: https://blog.csdn.net/fish_study_csdn/article/details/124731584

8、pidstat常用参数-主要看上下文切换

  • -u 默认的参数,显示各个进程的CPU使用统计
  • -r 显示各个进程的内存使用统计
  • -d 显示各个进程的IO使用情况
  • -p 指定进程号
  • -w 显示每个进程的上下文切换情况
  • -t 显示选择任务的线程的统计信息外的额外信息
  • -V 版本号
  • -h 在一行上显示了所有活动,这样其他程序可以容易解析。
  • -I(大写) 在SMP环境,表示任务的CPU使用率/内核数量
  • -l 显示命令名和所有参数
pidstat [ 选项 ] [ <时间间隔> ] [ <次数> ]
pidstat -u -w 1 5

pidstat: 能看磁盘、内存、cpu的数据,主要看cpu的上下文数据

  • PID:进程ID
  • %usr:进程在用户空间占用cpu的百分比
  • %system:进程在内核空间占用cpu的百分比
  • %guest:进程在虚拟机占用cpu的百分比
  • %CPU:进程占用cpu的百分比
  • CPU:处理进程的cpu编号
  • Command:当前进程对应的命令
  • UID PID
  • cswch/s 每秒主动任务上下文切换数量
  • nvcswch/s 每秒被动任务上下文切换数量

更多说明查看:https://www.jianshu.com/p/3991c0dba094

中断 VS 上下文切换:

  • 中断: 中断当前正在运行的,去做其他事情
  • 上下文切换: 资源的切换
  • 中断,一定会导致上下文切换,但是上下文切换,不一定会中断。

9、iostat: 看数据换入换出

iostat参数详解

  • -c: 仅显示CPU统计信息,与-d选项互斥
  • -d:仅显示磁盘统计信息,与-c选项互斥
  • -h:使用NFS(Network File System网络文件系统)的输出报告,更加友好可读。需要使用-n参数开启NFS。
  • -k:以 kb 为单位显示,默认情况下,iostat的输出是以block作为计量单位,加上这个参数可以以kb作为计量单位显示。(该参数仅在linux内核版本2.4以后数据才是准确的)
  • -m:以 mb 为单位显示(该参数仅在linux内核版本2.4以后数据才是准确的)
  • -N:显示磁盘阵列(LVM) 信息。
  • -V:显示版本信息
  • -x:显示更详细的磁盘报告信息,默认只显示六列,加上该参数后会显示更详细的信息(该参数仅在linux内核版本2.4以后数据才是准确的)
  • -n:显示NFS(Network File System网络文件系统) 使用情况(该参数仅在linux内核版本2.6.17以后有效)
  • -t:输出报告时显示系统时间
  • -p:[ { device [,…] | ALL } ] 显示磁盘分区的相关统计信息(默认粒度只到磁盘,没有显示具体的逻辑分区)
  • -y:跳过不显示第一次报告的数据,因为iostat使用的是采样统计,所以iostat的第一次输出的数据是自系统启动以来的累计的数据
  • -y 这个参数非常重要,因为第一次数据不属于正常数据,所以如果做数据统计时,计入了统计,会影响最终数据结果
iostat -dx 1 3

iostat -dx 1 3 ------没有带m,数据单位,默认kb

  • rrqm/s 合并的每秒读请求
  • wrqm/s 合并的每秒写请求
  • r/s 读/秒
  • w/s 写/s
  • rkB/s 读kb/s
  • wkB/s
  • avgrq-sz 平均情况的扇区数
  • avgqu-sz 等待大的请求数
  • await 等待的时间
  • r_await 读等待的时间
  • w_await 写等待的时间
  • svctm 实际请求的时间
  • %util 至少有一个活跃请求的所占的时间百分比

10.性能测试场景

I/O瓶颈
如果%iowait的值过高,表示硬盘存在I/O瓶颈

内存不足
%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU在等待分配内存,此时应加大内存容量

CPU资源不足
如果%idle值持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU

参考:https://blog.csdn.net/m369880395/article/details/127789732

性能测试-sysstat工具包(mpstat-主要查看CPU负载与iostat-看数据换入换出以及pidstat-主要看上下文切换)的更多相关文章

  1. Linux如何查看CPU负载

    负载(load)是Linux机器的一个重要指标,直观了反应了机器当前的状态.如果机器负载过高,那么对机器的操作将难以进行. linux的负载高,主要是由于CPU使用.内存使用.IO消耗三部分构成.任意 ...

  2. 如何查看Linux的CPU负载

    哪些工具可以查看 CPU 负载? 可以使用 top 命令.uptime 命令,特别是 top 命令,功能强大,不仅仅可以用来查看 CPU 负载. CPU 负载怎么理解?是不是 CPU 利用率? 要区别 ...

  3. 浅谈Linux下CPU利用率和CPU负载【转】

    转自:https://blog.csdn.net/Alisa_xf/article/details/71430406 在Linux/Unix下,CPU利用率(CPU utilization)分为用户态 ...

  4. linux 查看CPU、内存、磁盘信息命令

    [1]查看CPU信息 (1)查看CPU信息(型号) cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c (2)查看物理CPU个数 cat /pr ...

  5. cpu负载

    查看cpu负载,我们经常会使用top,或者是uptime命令 但是这只能看到cpu的总体的负载情况.如果我们想看cpu每个核心的负载情况是看不到的. 所以我们可以用mpstat命令 服务器一共32核心 ...

  6. Linux CPU负载

    昨天查看Nagios警报信息,发现其中一台服务器CPU负载过重,机器为CentOS系统.信息如下: 2011-2-15 (星期二) 17:50 WARNING - load average: 9.73 ...

  7. linux里的CPU负载

    昨天查看Nagios警报信息,发现其中一台服务器CPU负载过重,机器为CentOS系统.信息如下: 2011-2-15 (星期二) 17:50 WARNING - load average: 9.73 ...

  8. redhat 7.6 查看硬件负载命令

    1.  命令 查看CPU负载 命令1:uptime 命令2:cat  /proc/loadavg 查看CPU信息:cat  /proc/cpuinfo load average:表示平均1分钟内运行的 ...

  9. Linux查看CPU历史负载

    sar -f /var/log/sa/sa20 -s 02:00:00 -e 06:00:00 | head -n 50 sysstat工具与负载历史回放 很多系统负载过高的时候我们是无法立即获知或者 ...

  10. (转)linux查看CPU性能及工作状态的指令mpstat,vmstat,iostat,sar,top

    衡量CPU性能的指标: 1,用户使用CPU的情况:CPU运行常规用户进程CPU运行niced processCPU运行实时进程 2,系统使用CPU情况:用于I/O管理:中断和驱动用于内存管理:页面交换 ...

随机推荐

  1. P27_wxss - 全局样式和局部样式

    全局样式 定义在 app.wxss 中的样式为全局样式,作用于每一个页面. 局部样式 在页面的 .wxss 文件中定义的样式为局部样式,只作用于当前页面. 注意: 当局部样式和全局样式冲突时,根据就近 ...

  2. P16_发布-小程序的推广与运行数据的查看

    协同工作和发布 - 发布上线 基于小程序码进行推广 相对于普通二维码来说,小程序码的优势如下: 在样式上更具辨识度和视觉冲击力 能够更加清晰地树立小程序的品牌形象 可以帮助开发者更好地推广小程序 获取 ...

  3. 【Go并发编程】Goroutine的基本使用

    goroutine是什么 goroutine即协程,使用go关键字开启一个协程异步执行代码. 注意,main函数也是个goroutine. 基本使用 使用go执行子任务,会交替执行(和时间片一样). ...

  4. Mybatis Plus 框架项目落地实践总结

    在使用了Mybatis Plus框架进行项目重构之后,关于如何更好的利用Mybatis plus.在此做一些总结供大家参考. 主要总结了以下这几个方面的实践. 基础设计 BaseEntity 逻辑删除 ...

  5. 织梦DedeCMS 0day RCE

    前言 原文链接:https://mp.weixin.qq.com/s/bwBc4I9GeY6M_WlEDx83TA 复现记录时间: 下载当前最新版本DedeCMS V5.7.105进行漏洞复现以及漏洞 ...

  6. 如何获取win10用户最高权限

    第五步,在(输入对象名称)方框中输入"System Managed Accounts Group",再点击"检查名称" 转载: 百度经验:     https: ...

  7. Nacos集群搭建(三个节点)

    Nacos集群安装 一,在每台服务器上安装nacos 1,准备安装包 ​ github下载点 2,在/usr/local/目录下创建一个文件夹用于上传和解压Nacos cd /usr/local/ # ...

  8. JAVA排序的方法

    //冒泡排序法: package fuxi;public class Bubble {    public static void main(String[] args) {        int a ...

  9. wsl安装和使用

    1.安装wsl的版本 1.使用管理员身份打开powershell,执行 wsl --list --online 2.安装相应的版本 wsl --install -d Ubuntu-20.04 2.更改 ...

  10. 【MySQL 服务器参数优化】

    http://www.hainiubl.com/topics/75823 https://www.cnblogs.com/msjhw/p/15816582.html https://blog.csdn ...