文章目录

  • 一.mpstat
    • 1.1mpstat概述
    • 1.2命令安装
    • 1.3mpstat参数介绍
    • 1.4平均负载查看
  • 二.压力测试--stress
    • 2.1stress
    • 2.2命令包安装
    • 2.3stress参数
  • 三.进程性能查看--pidstat
    • 3.1常用参数
  • 四.压力测试
    • 4.1模拟CPU负载
    • 4.2模拟I/O负载

一.mpstat

1.1mpstat概述

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

1.2命令安装

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

yum install -y sysstat       #安装mpstat命令软件

命令语法格式:

mpstat [-P {cpu|ALL}] [interval [count]]

参数介绍:

参数 描述
-P {cpu ALL}
internval 相邻两次采样的间隔时间
count 采样的次数,count只能和internval一起使用


1.3mpstat参数介绍

显示参数 描述
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的空闲时间的百分比
此处我们主要查看%idle值和%iowait,进行cpu负载时信息分析

1.4平均负载查看

使用uptime命令可以查看系统平均负载
当系统变慢,用top或uptime来了解系统的负载情况。
系统平均负载是指在特定时间间隔内运行队列中的平均进程数
如果单个CPU过去一分钟平均负载不大于3的话,那么系统的性能是良好的。2核是6依次类推

二.压力测试–stress

2.1stress

stress是Linux下的一个压力测试工具,可以对cpu、memory(内存)、IO以及磁盘进行压力测试,可以指定负载的cpu个数。

2.2命令包安装

yum install -y epel-release  #安装epel软件库
yum install -y stress        #安装软件包

什么是epel
EPEL (Extra Packages for Enterprise Linux)是一个开源的、免费的、基于社区的存储库项目,来自Fedora团队,它为Linux发行版提供了100%高质量的附加软件包,包括RHEL (Red Hat Enterprise Linux)、CentOS和Scientific Linux。 EPEL项目不是RHEL/CentOS的一部分,但它是为主要的Linux发行版设计的,提供了大量的开放源码包,如网络工具、系统管理员工具、编程、监控等。
为什么我们要使用epel提供了大量的开源包安装通过Yum和DNF。
Epel repo是100%开源和免费使用。
它不提供任何核心复制包,也没有兼容性问题。
所有EPEL包都由Fedora回购维护。

2.3stress参数

常用参数

-c  --cpu     产生n个进程,每个进程都反复不停的计算随机数的平方根
-i  --io      产生n个进程,每个进程反复调用 将内存上的内容写到硬盘上
-m  --vm       产生n个进程,每个进程不断分配和释放内存
-t  --timout  在n秒后结束进程
-d  --hdd     产生n个不断执行 write 和unlink函数的进程(创建文件、写入内容、删除文件)

三.进程性能查看–pidstat

pidstat 是一个常用的进程性能分析工具,用来实时查看进程的 CPU、内存、I/O 以及上下文切换等性能指标。

3.1常用参数

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

四.压力测试

采用stress压力测试工具,模拟CPU 负载的情况,高IO的情况,使用uptime查看平均负载,使用mpstat和pidstat工具,找出负载高的根源。
查看无负载时CPU信息

4.1模拟CPU负载

stress -c 3 -t 600


单核CPU,平均1分钟负载值超过3,已经过载了
使用pidstat命令查看使用cpu占用率前5的进程,此时可以看到占用率最高的几个进程,我们可以针对性的进行kill杀死进程,进行释放CPU

4.2模拟I/O负载

此处使用了2个cpu

stress --io 10 --hdd 10--timeout 600
进行压力测试,产生10个进程,持续600秒
-i : --io  产生n个进程,每个进程反复调用 将内存上的内容写到硬盘上



Io 读写占用百分比过高

查看正在进行的进程pid号
找到异常原因
查看是哪个进程导致I/O读写过高

pidstat -d 1 3(-d参数查看各进程io情况)
Stress 占用进程导致io读写过高

找到相应进程,将问题进程杀死

总结:cpu使用率是单位时间内cpu繁忙情况的统计,跟系统平均负载不一定完全对应,系统中存在大量等待cpu调度的进程,会使load average平均负载和cpu使用率都升高,mpstat的全称为Multiprocessor Statistics,是一款常用的多核CPU性能分析工具,用来实时查询每个CPU的性能指标,以及所有CPU的平均指标。

系统调优--mpstat命令详解相关推荐

  1. mysql性能调优之 max_allowed_packet 详解 解决ERROR 2006 (HY000): MySQL server has gone away

    mysql性能调优之 max_allowed_packet 详解 一.背景 mysql报错如下: SQLSTATE[HY000]: General error: 2006 MySQL server h ...

  2. apache启服务命令_Linux系统重启apache服务命令详解

    Linux系统中apache是重要的一个服务,掌握基本操作尤其重要.下面由学习啦小编为大家整理了Linux系统重启apache服务命令详解,希望对大家有帮助! Linux系统重启apache服务命令详 ...

  3. Linux运维05:mpstat命令详解

    系列专题:Linux运维入门教程 mpstat是Multiprocessor Statistics的缩写,是CPU实时监控工具.它会显示CPU的一些统计信息,这些信息存放在/proc/stat文件中. ...

  4. Tomcat8调优核心实战详解

    前言 本文的目的不在于给出最佳配置,而是带领开发者,能够从实际情况出发,通过不断的调节tomcat和jvm参数,去发现吞吐量,平均响应时间和错误率等信息的变化,同时根据服务器的cpu和内存等信息,结合 ...

  5. mysql工具使用意义_MySQL性能分析、及调优工具使用详解

    本文汇总了MySQL DBA日常工作中用到的些工具,方便初学者,也便于自己查阅. 先介绍下基础设施(CPU.IO.网络等)检查的工具: vmstat.sar(sysstat工具包).mpstat.op ...

  6. Linux下mpstat命令下,linux mpstat命令详解

    一.mpstat说明 mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具.其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中.在多CPUs系 ...

  7. JVM性能调优监控工具使用详解

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"加入公众号专属技术群 来源:http://uee.me/czpHk 现实企业级J ...

  8. Solaris 系统中的snoop命令详解

    原文地址:http://blog.51cto.com/candon123/153254 Snoop 是Solaris 系统中自带的工具, 是一个用于显示网络通讯的程序, 它可捕获IP 包并将其显示或保 ...

  9. Java虚拟机学习总结(4)—— JVM 性能调优常用参数详解

    前言 在JVM性能调优时有三个组件: 堆大小调整(内存最够大的话,尽量搞大点) 垃圾收集器调整 JIT 编译器(比较深,需要掌握源码才能更好的优化更加底层) 大多数调优选项都与调整堆大小和为您的情况选 ...

最新文章

  1. Tensor2Tensor 踩坑记录
  2. a[1]和1[a]——浅谈数组下标运算符
  3. ?类型 ,?类型(值)
  4. 手把手带你玩转Tensorflow 物体检测 API (1)——运行实例
  5. C++编程中的四个调试小技巧
  6. Swagger与Springboot集成restful进行接口测试
  7. Delphi 正则表达式之TPerlRegEx 类的属性与方法(6): EscapeRegExChars 函数
  8. 【电路仿真】基于matlab Simulink四旋翼PID控制【含Matlab源码 454期】
  9. 手把手教你protel 99se 入门
  10. IDA安装lazyIDA
  11. 思科模拟器连通服务器网页,思科模拟器主机访问服务器
  12. Inspect(VB.NET、C#版)软件的的下载和使用
  13. 使用 K3S 创建本地开发集群
  14. Design Compiler工具学习笔记(7)
  15. Ubuntu设置屏幕分辨率及屏幕翻转
  16. Hadoop面试连环炮
  17. 点清铸造厂车间除臭剂处理废气和废水恶臭
  18. 济南大学计算机专硕考研真题,济南大学考研真题各专业汇总
  19. windet插入图片的大小_LaTeX的图片插入及排版
  20. 【Python机器学习实战】聚类算法——层次聚类(HAC)和DBSCAN

热门文章

  1. linux内核1G虚拟地址空间的映射规则以及什么是高端内存?
  2. 开工大吉,数据猿与您共赴美好新征程!
  3. 给学习加点实践,开发一个分布式IM(即时通信)系统!
  4. abap alv中设置数量(QUAN)字段输出时不要有小数位
  5. ionic 安卓打包app
  6. 重新安装win10应用商店
  7. linux sudo授权命令
  8. gearman java例子_GearMan Java版试用 02- 简单应用之Worker编写和说明
  9. [Docker] Docker设置镜像代理
  10. Git 本地篇之提交文件