MySQL压测实战

写作目的

最近看到一句话是MySQL的TPS是4000,这句话是不严谨的,因为没有说服务器的配置。所以自己买了个服务器做了一个压测。希望自己对数据有一个概念。
注意:服务器不同结果不同,结果不具有普适性

服务器配置

配置参数
CPU2核
内存4G
MySQL5.7
Linux7.5

MySQL安装

1)docker安装

2)docker安装MySQL

docker run --name mysql-6-20220702 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456  mysql:5.7

MySQL压测实践

压测工具的安装sysbench

执行 下载命令

curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash

安装

sudo yum -y install sysbench

查看版本

sysbench --version

构造测试表和数据

sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=test_db --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable prepare
参数含义
–db-driver=mysql这个很简单,就是说他基于mysql的驱动去连接mysql数据库,你要是oracle,或者sqlserver,那自然就是其他的数据库的驱动了
–time=300这个就是说连续访问300秒
–threads=10这个就是说用10个线程模拟并发访问
–report-interval=1这个就是说每隔1秒输出一下压测情况
–mysql-host=127.0.0.1这是你要连接的sql服务连接
–db-driver=mysql这个很简单,就是说他基于mysql的驱动去连接mysql数据库,你要是oracle,或者sqlserver,那自然就是其他的数据库的驱动了
–mysql-port=3306数据端口
–mysql-user=test_user数据库用户名
–mysql-password=test_user数据库密码
–mysql-db=test_db哪个数据库进行压测,需要手动创建库
–tables=20压测数据库创建多少张表
–table_size=1000000压测数据库每张表插入多少数据
oltp_read_write执行oltp数据库的读写测试
–db-ps-mode=disable禁止ps模式(不知道干嘛的)
prepare参照这个命令的设置去构造出来我们需要的数据库里的数据,他会自动创建20个测试表,每个表里创建100万条测试数据

执行上面命令完毕后数据库中会有这样的命令
在这里插入图片描述

压测结果解读DEMO

从10个线程开始压,压10秒,同时读写操作

sysbench --db-driver=mysql --time=10 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=test_db --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable run

在这里插入图片描述
[ 1s ] thds: 10 tps: 131.73 qps: 2668.44 (r/w/o: 1868.11/526.90/273.43) lat (ms,95%): 99.33 err/s: 0.00 reconn/s: 0.00

参数含义
thds: 10有10个线程在压测
tps: 131.73每秒执行了131.73个事务
qps: 2668.44每秒可以执行2668.44个请求
(r/w/o: 1868.11/526.90/273.43)在每秒2668.44个请求中,有1868.11个请求是读请求,526.90个请求是写请求,273.43个请求是其他的请求,就是对QPS进行了拆解l
at (ms,95%): 99.33 err/s95%的请求的延迟都在 99.33毫秒以下
0.00 reconn/s: 0.00,每秒有0个请求是失败的,发生了0次网络重连

SQL statistics:
  queries performed:
    read: 11438// 这就是说在10s的压测期间执行了11438次的读请求
    write: 3268// 这是说在压测期间执行了3268次的写请求
    other: 1634// 这是说在压测期间执行了1634次的其他请求
    total: 16340// 这是说一共执行了16340次的请求
  transactions: 817( 75.2 per sec. ) // 这是说一共执行了817个事务,每秒执行75.2个事务
  queries: 16340( 1503.92 per sec. )// 这是说一共执行了16340次的请求,每秒执行1503.92 请求
  ignored errors: 0 (0.00 per sec.)
  reconnects: 0 (0.00 per sec.)

General staticstics:
  total time: 10.0052s //一共执行了10s的压测
  total number of events: 817 //一共执行了817个事务

Latency (ms):
  min: 13.21 // 请求中延迟最小的是13.21 ms
  avg: 132.31 // 所有请求平均延迟是132.31 ms
  max: 4675.90 // 延迟最大的请求是4675.90 ms
  95th percentile: 287.38 // 95%的请求延迟都在287ms以内
  sum: 108097.91 //总共耗时108097.91 ms

增压结果对比

从10个线程发压,一直看到QPS和RT有明显波动时停止

线程数QPSTPSRT(95%)
103813191170ms
203506175215ms
304312215272ms
403802190427ms
5033861691304ms

从上面表格中可以看出,在我这个服务器2核4G内存下MySQL的QPS峰值是4300,TPS为215,RT为300ms。

参考

linux 安装 sysbench 和 使用
☆☆☆☆☆sysbench-多线程性能测试工具(压测MySQL)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】堆的实现(向下调整和向上调整法)和堆排序的实现

目录 一、堆的概念引入 二、小堆的实现 首先,我们会跟线性表一样建立一个动态数组来存堆的数据 ①、堆的初始化--HeapInit ②、小堆的向下调整法的实现 ③、堆排序的实现 ④、堆的插入和向上调整法 ⑤、删除堆顶数据 ⑥、获取堆顶 三、时间复杂度总结&#…

网络安全进阶学习第六课——服务器解析漏洞

文章目录 1、概念2、Apache解析漏洞 CVE-2017-157153、Apache AddHandler解析漏洞4、IIS6 解析漏洞(;)5、IIS6 解析漏洞(*.asp/目录)6、IIS7 解析漏洞(ISAP或CGI的模式下)7、nginx解析漏洞(cgi.…

2023年6月第4周大模型荟萃

2023年6月第4周大模型荟萃 2023.6.30版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 1、腾讯云首次公布大模型进展 6月19日,腾讯云召开行业大模型及智能应用技术峰会,首次公布腾讯云行业大模型研发进展&#xff0…

QT下载太慢,在线安装太慢的解决方案

实现效果 步骤1 下载在线安装的客户端,可以从qt.io(qt-unified-windows-x64-4.6.0-online.exe)下载,速度稍慢,但是大小也才38MB左右。 觉得下载太慢的小伙伴可以使用我提供的代下载版本,你们可以校验文件…

峰会来袭 | CAD模型转换工具选择的难点和关键点解答

作为世界顶尖的3D软件开发SDK和CAD模型转换工具——HOOPS Exchange已问世十多年,深受开发者好评,并在工业测量、机械加工、造船设计等领域都有广泛的应用。 本次峰会将围绕CAD软件造型技术的多样性、CAD模型数据解析的难点、3D模型转换的经典问题等&…

IDEA+springboot+jpa+Layui+Mysql销售考评系统源码

IDEAspringbootjpaLayuiMysql销售考评系统源码 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.评分结果3.评分管理4.添加评分5.用户管理6.添加用户7.角色管理8.添加角色8.销售管理9.添加销售 三、部分代码UserDao.javaUserController.javaUser.java 四、其他获取源码 一、…

黑芝麻智能科技、上海紫先面试(部分)(未完全解析)

黑芝麻智能科技 Hystrix可以限流吗?客户端限流,是限制对下游(被调用方)的访问,不是对本服务限流。从HystrixCommand的.withExecutionIsolationStrategy(ExecutionIsolationStrategy.SEMAPHORE)也可以看出来&#xff0c…

STM32外设系列—ESP8266(WIFI)

文章目录 一、ESP8266简介二、固件库烧录三、常用AT指令四、访问API4.1 获取IP地址4.2 GET天气信息4.3 访问结果展示 五、实战项目5.1 串口配置5.2 检测WIFI模块连接状态5.3 发送配置指令5.4 解析天气信息 六、成果展示 一、ESP8266简介 ESP8266是嵌入式和物联网开发中常用的模…

MySQL子查询

😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。 🎆学习格言:不读书的人,思想就会停止。——狄德罗 ⛪️个人主页:进入博主主页 🗼专栏系列:进入MySQL专栏知…

Jenkins邮件配置报错com.sun.mail.smtp.SMTPSenderFailedException: 501

Jenkins邮件配置,配置完成各种信息之后,“通过发送测试邮件测试配置”点击Test configuration,报错 1、报错信息 com.sun.mail.smtp.SMTPSenderFailedException: 501 mail from address must be same as authorization userat com.sun.mail…

Xcode 15 beta 3 (15A5195k) 发布下载 - Apple 平台 IDE

Xcode 15 beta 3 (15A5195k) 发布下载 - Apple 平台 IDE (visonOS 1 beta 已发布) 7 月 5 日(北京时间今日凌晨)已发布。 IDE for iOS/iPadOS/macOS/watchOS/tvOS/visonOS 请访问原文链接:https://sysin.org/blog/apple-xcode-15/&#xf…

Flutter生命周期小结

Flutter 中的生命周期,包含以下几个阶段: createState ,在 StatefulWidget 中创建 State 的方法,当 StatefulWidget 调用时会触发 createState 。initState ,在 State 初始化时调用,因此可以在此期间执行 …

Python 基于招聘数据可视化系统

1 简介 Python 基于招聘数据可视化系统,视频效果如下: 基于Python的招聘信息可视化系统,附源码 随着国内的经济不断的快速发展,现在学生的就业压力也在逐年增加,网络上的招聘信息非常的丰富,但是对于学生而…

Flutter基础控件

Text:文字 Text("Flutter") Text是最常用也是最基础的,目前学习阶段只用来加载文字数据,更多属性和样式设置请查看源码自己探索。 Button:按钮 ElevatedButton:普通按钮 ElevatedButton(onPressed: () {if (kDebugMode) {print("Elevat…

安装和配置nginx(含https)

文章目录 安装Nginx配置单独的配置:https配置 nginx为什么可以处理高并发 安装Nginx sudo yum update sudo yum install epel-release sudo yum install nginx sudo systemctl start nginx安装好后可以打开自己的域名 看一下默认的页面 配置 具体参考Link 位置 …

软件工程——第7章实现知识点整理

本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明! 文章目录 1.实现由哪两个部分组成? 2.编码是什么?所选用的程序设计语言对程序的哪些特性有着深远影响? 3.软件测试在软件生…

Python编程实现针对回撤的交易策略

在金融交易市场上,回撤是一个常见的现象。因此,对于投资者来说,研究和设计针对回撤的交易策略是非常必要的。本文将介绍如何使用Python编程实现针对回撤的交易策略,以帮助投资者更好地进行交易。 一、回撤分析 在设计针对回撤的…

Cisco Catalyst 9000 Series Switches, IOS-XE Release Dublin-17.11.1 ED

Cisco Catalyst 9000 Series Switches, IOS-XE Release Dublin-17.11.1 ED Cisco Catalyst 9000 交换产品系列 请访问原文链接:https://sysin.org/blog/cisco-catalyst-9000/,查看最新版。原创作品,转载请保留出处。 作者主页:…

Basler相机一丢包就断开问题解决

问题描述: 两个相机, 一个相机aca2500-14gm连接电脑主板100M网卡没问题,帧率3帧,但是不会断。 一个相机aca2500-14gm连接USB转网口(千兆),pylon Viewer采图丢包严重并且几秒后相机断开。 解决…

Centos 7 下安装Redis

官网地址(英文):Redis 官网地址(中文):CRUG网站 or redis中文文档 Redis源码地址:GitHub - redis/redis: Redis is an in-memory database that persists on disk. The data model is key-v…