[MySQL]-压力测试之性能监测指标

森格 | 2022年12月

本文主要是介绍在数据库的压测过程中,要时刻的一些指标,尤其是当数据库的性能达到瓶颈时,要注意哪个指标已经打满。

一、前文回顾

在前面量两篇文章中,分别介绍了两款压测数据库的工具,Sysbench 与 TPCC-MySQL,大家可以点击链接回顾一下(大概需要10分钟)。在压力测试中,我们不断增加并发数去获取当前数据库配置下的最大性能(QPS、TPS、TPMC等)。

今天呢,我们来注意下在这过程中,是哪些方面的原因导致了性能达到了瓶颈。

二、机器配置

对于压力测试前,我们需要对我们的机器大概的配置有一个了解,在这里个人写了个shell脚本供大家做参考:

#!/bin/sh
#Date:2022年10月21日
#author:liangsen
#
echo -e "\033[41;30;30mI will show computer Infomation there\033[0m"
echo ""
echo -e "\033[44;30;30m====================CPU========================\033[0m"
grep "model name" /proc/cpuinfo
echo ""
echo -e "\033[44;30;30m================Memory Size====================\033[0m"
grep MemTotal /proc/meminfo
echo ""
echo -e "\033[44;30;30m=================32/64Bit=======================\033[0m"
getconf LONG_BIT
echo ""
echo -e "\033[44;30;30m===============Linux version====================\033[0m"
cat /etc/redhat-release
echo ""
echo -e "\033[44;30;30m=================Linux Core=====================\033[0m"
uname -r
echo ""
echo -e "\033[44;30;30m============HardDisk And Partition==============\033[0m"
df -h
echo ""
echo -e "\033[44;30;30m=====================IP==========================\033[0m"
ifconfig
echo "gateWay"
cat /etc/sysconfig/network
echo "DNS"
cat /etc/resolv.conf
echo ""
echo -e "\033[44;30;30m=====================HostName==========================\033[0m"
hostname
echo ""

该脚本分别展示了机器的CPU、内存、位数、Linux版本、Linux内核版本、磁盘和分区情况、IP地址以及主机名称。

三、性能监测

对于测试的性能,我们可以从几个方面来观察,分别是 CPU、磁盘、内存、网络。

注:在压力测试过程,如果想要测试到最佳的性能,最好压测机和被压测机分开来。

工具

这里使用dstat来对几个指标进行监测。dstat结合了vmstat,iostat,ifstat,netstat以及更多的信息, 实时显示统计情况,输出报告, 在分析和排障时可以通过启用监控项并排序, 模块化设计,使用python编写的,方便扩展现有的工作任务。

安装:

# 使用 yum 安装
hostname>yum install dstat
# 检测是否安装成功
hostname>dstat

查看dstat参数:

Usage: dstat [-afv] [options..] [delay [count]]
Versatile tool for generating system resource statisticsDstat options:-c, --cpu              enable cpu stats-C 0,3,total           include cpu0, cpu3 and total-d, --disk             enable disk stats-D total,hda           include hda and total-g, --page             enable page stats-i, --int              enable interrupt stats-I 5,eth2              include int5 and interrupt used by eth2-l, --load             enable load stats-m, --mem              enable memory stats-n, --net              enable network stats-N eth1,total          include eth1 and total-p, --proc             enable process stats-r, --io               enable io stats (I/O requests completed)-s, --swap             enable swap stats-S swap1,total         include swap1 and total-t, --time             enable time/date output-T, --epoch            enable time counter (seconds since epoch)-y, --sys              enable system stats--aio                  enable aio stats--fs, --filesystem     enable fs stats--ipc                  enable ipc stats--lock                 enable lock stats--raw                  enable raw stats--socket               enable socket stats--tcp                  enable tcp stats--udp                  enable udp stats--unix                 enable unix stats--vm                   enable vm stats--plugin-name          enable plugins by plugin name (see manual)--list                 list all available plugins-a, --all              equals -cdngy (default)-f, --full             automatically expand -C, -D, -I, -N and -S lists-v, --vmstat           equals -pmgdsc -D total--bits                 force bits for values expressed in bytes--float                force float values on screen--integer              force integer values on screen--bw, --blackonwhite   change colors for white background terminal--nocolor              disable colors (implies --noupdate)--noheaders            disable repetitive headers--noupdate             disable intermediate updates--output file          write CSV output to file--profile              show profiling statistics when exiting dstat

对我们来说,用到 -cdrmngy就足以:

hostname>dstat -cdrmngy

total-cpu-usage:

usr sys idl wai hiq siq
用户时间占比 系统时间占比 空闲时间占比 等待时间占比 硬中断 软中断

dsk/total:

read writ
磁盘的读总数(KB或者MB) 磁盘的写总数(KB或者MB)

net/total:

recv send
网络设备接收的数据总数(KB或者MB) 网络设备发送的数据总数(KB或者MB)

paging(系统的分页活动):

in out
换入次数 换出次数

system(系统统计):

int csw
终端次数 上下文切换次数

四、总结

在压测过程中,需要我们时刻监测这些性能指标,并去分析哪个指标是是性能达到瓶颈的关键因素,从而可以更好地去进行性能优化。以上仅为个人总结,如有不对之处欢迎大佬们指导。

[MySQL]-压力测试之性能监测指标相关推荐

  1. [MySQL]-压力测试之Sysbench

    [MySQL]-压力测试之Sysbench 文章目录 [MySQL]-压力测试之Sysbench 一.Sysbench概况 1)介绍 2)安装部署 二.实战 1)构造测试数据 2)开始运行 压测结果解 ...

  2. [MySQL]-压力测试之TPCC-MySQL

    [MySQL]-压力测试之TPCC-MySQL 文章目录 [MySQL]-压力测试之TPCC-MySQL 一.基本概念 1.1 基准测试VS压力测试 1.2 TPCC是什么? 1.3 TPCC-MyS ...

  3. mysql 压力测试之批量插入自增字段不连续问题

    Gaps in auto-increment values for "bulk inserts" With innodb_autoinc_lock_mode set to 0 (& ...

  4. Mysql性能衡量指标

    性能衡量指标 TPS Transactions Per Second(每秒传输的事务处理个数),这里指服务器每秒处理的事务数,支持事务的存储引擎如InnoDB等特有的一个性能指标. QPS Queri ...

  5. mysql性能监控指标_mysql性能监控指标

    mysql性能监控指标1.系统mysql的进程数 ps-ef | grep "mysql" | grep -v "grep" |wc –l2.Slave_run ...

  6. mysql并发写入性能分析

    目前,在很多OLTP场景中,MySQL数据库都有着广泛的应用,也有很多不同的使用方式.从数据库的业务需求.架构设计.运营维护.再到扩容迁移,不同的MySQL架构有不同的特点,适应一定的业务场景,或者解 ...

  7. Linux性能监测工具Nmon介绍及其使用

    1 NMON介绍 Nmon由 IBM 开发并已开源 (Nmon for linux 版本已经在 2009 年 7 月 27 日开放源码 ) ,是收集 AIX 或 Linux 主机的性能数据并分析的工具 ...

  8. Jmeter(十八):硬件性能监控指标

    硬件性能监控指标 一.性能监控初步介绍 性能测试的主要目标 1.在当前的服务器配置情况,最大的用户数 2.平均响应时间ART,找出时间较长的业务 3.每秒事务数TPS,服务器的处理能力 性能测试涉及的 ...

  9. 【Netdata】性能监测工具介绍、安装、使用

    一.工具介绍 Netdata是一款Linux系统实时性能监测工具,以web的可视化方式展示系统及应用程序的实时运行状态.前端响应快,UI很整洁,操作方面,支持图表重置,缩放.具体优点如下:界面酷炫:i ...

最新文章

  1. C++ Boost库简介
  2. 20应用统计考研复试要点(part12)--应用多元分析
  3. 用Python爬取Bilibili视频,难吗?
  4. Qt从入门到放弃_0x01:建立项目
  5. JNA参数传递问题,Java数组
  6. hibernate、mysql、中文字符问题
  7. CS231n李飞飞计算机视觉 迁移学习之物体定位与检测上
  8. 第三视角Beta答辩总结
  9. 图画日记怎么画_图画日记
  10. 80端口映射外网方法
  11. RFT 控件类型关系
  12. 专利撰写教程网站合集
  13. LOL全英雄皮肤爬虫
  14. ios极光推送 App收到推送消息时,修改BadgeNumber,同时点击状态栏消息以后跳到指定的页面和静默推送
  15. 代码实现微信8.0特效
  16. 清道夫受体-A靶向脂肪酸修饰白蛋白纳米粒/银耳多糖修饰白蛋白微球的制备
  17. 线性代数学习笔记——第七十三讲——实对称矩阵的特征值与特征向量
  18. NER任务中BERT-CRF 模型的英文数据padding与aligning
  19. 20180430-A · ACS Census Data (2015) · ggplot2 maps rcstatebin 地图 热图 蜂窝地图 动态图 · R 语言数据可视化 案例 源码
  20. GitHub上Stars最多的10个Python项目

热门文章

  1. C语言 int类型赋值给short类型
  2. 3度带、6度带带号与中央经线
  3. LWN:扩展KVM社区!
  4. H5 -- (功能)App内嵌h5网页实现芝麻认证的接入
  5. 读书笔记:《代码大全第2版》布局与风格
  6. 【C语言】判断素数的方法
  7. 使用echarts实现简单的疾病知识图谱
  8. 阿里巴巴为什么能抗住双十一?看完这篇你就明白了!
  9. 清华教授肝了368个小时整理出《Python3速查手册》高清PDF开发下载,零基础学习必备
  10. grpc-go源码剖析十二之平衡器基本原理介绍