sysbench压测mysql性能测试命令和报告

sysbench压测mysql性能测试命令和报告

  • 一、安装sysbench工具
  • 二、创建测试数据库
  • 三、基于sysbench构造测试表和测试数据
  • 四、数据库性能测试
    • 1、数据库读写性能测试
    • 2、数据库读性能测试
    • 3、数据库删除性能测试
    • 4、数据库更新索引字段性能测
    • 5、数据库更新非索引字段性能测试
    • 6、数据库插入数据性能测试
    • 7、数据库写性能测试
    • 8、执行完成压测之后可以将run改成cleanup,清除数据

一、安装sysbench工具

  1. 下载sysbench工具
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
  1. 安装sysbench工具
sudo yum -y install sysbench
  1. 查看安装后的版本号
sysbench --version

在这里插入图片描述

二、创建测试数据库

登到mysql后台,创建sysbench数据库

create database tssysbench;

在这里插入图片描述

注意:如果没tssysbench数据库,执行后续sysbench命令时会报下面的错误。
在这里插入图片描述

三、基于sysbench构造测试表和测试数据

sysbench /usr/share/sysbench/oltp_read_write.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=10 \
--threads=128 --time=300 \
prepare

命令行中的参数说明:

​ --db-driver=mysql:代表数据库驱动
​ --time=300:这个就是说连续访问300秒
​ --threads=128:这个就是说用128个线程模拟并发访问
​ --report-interval=10:这个就是说每隔10秒输出一下压测情况
​ --mysql-host=172.16.111.109 --mysql-port=13306 --mysql-user=root --mysql-password=123456:数据库的用户和密码等信息
​ --mysql-db=tssysbench --tables=20 --table_size=1000000:这一串的意思,就是说在tssysbench这个库里,构造20个测试表,每个测试表里构造100万条测试数据,测试表的名字会是类似于sbtest1,sbtest2这个样子的
​/usr/share/sysbench/oltp_read_write:这个就是说,执行oltp数据库的读写测试
​最后有一个prepare,意思是参照这个命令的设置去构造出来我们需要的数据库里的数据,他会自动创建20个测试表,每个表里创建100万条测试数据,所以这个工具是非常的方便的。

​ 下面是执行过程中的输出信息:
在这里插入图片描述

​ 查询表中的数据,发现表里面有100w条数据:
在这里插入图片描述

四、数据库性能测试

1、数据库读写性能测试

​数据库读写性能测试,将执行指令最后的prepare修改成run:

sysbench /usr/share/sysbench/oltp_read_write.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=10 \
--threads=64 --time=30 \
run

​下面是截取的执行10秒,20秒,30秒的数据。

[ 10s ] thds: 64 tps: 1184.53 qps: 23779.02 (r/w/o: 16660.13/4743.43/2375.46) lat (ms,95%): 97.55 err/s: 0.00 reconn/s: 0.00
[ 20s ] thds: 64 tps: 860.68 qps: 17213.78 (r/w/o: 12045.88/3446.54/1721.37) lat (ms,95%): 161.51 err/s: 0.00 reconn/s: 0.00
[ 30s ] thds: 64 tps: 692.06 qps: 13844.57 (r/w/o: 9691.79/2768.65/1384.13) lat (ms,95%): 267.41 err/s: 0.00 reconn/s: 0.00

对表中的数据进行说明,以第一条数据做解释描述:

thds: 64,这个意思就是有10个线程在压测
tps: 1184.53,这个意思就是每秒执行了1184.53个事务
qps: 23779.02,这个意思就是每秒可以执行23779.02个请求(r/w/o: 16660.13/4743.43/2375.46),这个意思就是说,在每秒23779.02个请求中,有16660.13个请求是读请求,4743.43个请求是写请求,2375.46个请求是其他的请求,就是对QPS进行了拆解
lat (ms, 95%): 97.55,这个意思就是说,95%的请求的延迟都在 97.55毫秒以下
err/s: 0.00 reconn/s: 0.00,这两个的意思就是说,每秒有0个请求是失败的,发生了0次网络重连

下面是执行完成后控制台输出的数据:
在这里插入图片描述

2、数据库读性能测试

sysbench /usr/share/sysbench/oltp_read_only.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
run

在这里插入图片描述

3、数据库删除性能测试

sysbench /usr/share/sysbench/oltp_delete.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
run

在这里插入图片描述

4、数据库更新索引字段性能测

sysbench /usr/share/sysbench/oltp_update_index.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
run

在这里插入图片描述

5、数据库更新非索引字段性能测试

sysbench /usr/share/sysbench/oltp_update_non_index.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
run

在这里插入图片描述

6、数据库插入数据性能测试

sysbench /usr/share/sysbench/oltp_insert.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
run

在这里插入图片描述

7、数据库写性能测试

sysbench /usr/share/sysbench/oltp_write_only.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
run

在这里插入图片描述

8、执行完成压测之后可以将run改成cleanup,清除数据

sysbench /usr/share/sysbench/oltp_read_write.lua \
--mysql-host=172.16.111.109  --mysql-port=13306 \
--mysql-user=root  --mysql-password='123456' \
--mysql-db=tssysbench --db-driver=mysql \
--tables=20 --table-size=1000000 --report-interval=30 \
--threads=64 --time=120 \
cleanup

在这里插入图片描述

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

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

相关文章

windows ip助手函数了解

根据手册,winsock编程中提供的有一类函数叫ip助手函数;比如Ipconfig函数,从名字看应该是可自己编程实现类似ipconfig命令的功能; 刚看到一个示例,是MS提供的,也属于这一类,代码如下, #include <winsock2.h> #include <ws2tcpip.h> #include <iphlpapi…

C++ vector类

目录 0.前言 1.vector介绍 2.vector使用 2.1 构造函数(Constructor) 2.1.1. 默认构造函数 (Default Constructor) 2.1.2 填充构造函数 (Fill Constructor) 2.1.3 范围构造函数 (Range Constructor) 2.1.4 拷贝构造函数 (Copy Constructor) 2.2 迭代器(Iterator) 2.2.…

十、通配符和正则表达式

10.1 通配符 通配符是由shell处理的, 它只会出现在 命令的“参数”里。当shell在“参数”中遇到了通配符 时&#xff0c;shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配&#xff1a;若符合要求的匹配存在&#xff0c;则进 行代换(路径扩展)&#xff1b;否则就将该通配…

python安装依赖

创建 requirement.txt 文件并填充内容 flask2.0.0 pandas1.3.3 numpy1.21.2 安装模块 pip install -r requirement.txt

Spring boot使用集群方式、支持ssl连接redis的方法

1、需求背景 项目需要提供一个管理界面给内部人员操作用户信息&#xff0c;需要在修改用户信息后删除用户的redis缓存。用户所在的区域不同&#xff0c;其redis服务地址也不相同&#xff0c;因此需要管理多个redis连接&#xff0c;且redis要求以集群方式并支持ssl进行连接。 2…

Qt for android 获取USB设备列表(一)Java方式 获取

简介 QtActivity 作为 Qt 应用程序的入口点&#xff0c;负责启动和配置 Qt 应用程序的信息&#xff0c; 后面我们继承 QtActivity 做自定义控制&#xff0c;了解一下 Activity 生命周期概念&#xff0c; 因为 QtActivity 继承自Android的activity&#xff0c;使用周期函数完成我…

java8新特性——函数式编程详解

目录 一 概述1.1 背景1.2 函数式编程的意义1.3 函数式编程的发展 Lambda表达式1.1 介绍1.2 使用Lambda的好处1.3 Lambda方法1.3.1 Lambda表达式结构1.3.2 Lambda表达式的特征 1.4 Lambda的使用1.4.1 定义函数式接口1.4.2 Lambda表达式实现函数式接口1.4.3 简化Lambda表达式1.4.…

C++学习/复习4--与类相关的概念/默认成员函数/运算符重载/Date类实现案例

一、类和对象 1.本章概要 2.C中的结构体(struct与class) 升级为类 &#xff08;1&#xff09;类及成员函数的两种定义方式 声明与定义分离 &#xff08;2&#xff09;权限 注意1&#xff1a;struct/class在权限上的区别 &#xff08;3&#xff09;封装 &#xff08;4&#x…

AI学习指南数学工具篇-凸优化之对偶性与拉格朗日对偶

AI学习指南数学工具篇-凸优化之对偶性与拉格朗日对偶 在凸优化中&#xff0c;对偶性是一个非常重要的概念。通过对偶性&#xff0c;我们可以将原始问题转化为对偶问题&#xff0c;从而更容易求解。其中&#xff0c;拉格朗日对偶问题是对偶性的一个重要应用&#xff0c;通过拉格…

《Ai学习笔记》自然语言处理 (Natural Language Processing):机器阅读理解-基础概念解析01

自然语言处理 (Natural Language Processing)&#xff1a; NLP四大基本任务 序列标注&#xff1a; 分词、词性标注 分类任务&#xff1a; 文本分类、情感分析 句子关系&#xff1a;问答系统、对话系统 生成任务&#xff1a;机器翻译、文章摘要 机器阅读理解的定义 Machi…

LangChain - 建立代理

本文翻译整理自&#xff1a;Build an Agent https://python.langchain.com/v0.2/docs/tutorials/agents/ 文章目录 一、说明概念 二、定义工具1、TavilyAPI参考&#xff1a; 2、RetrieverAPI参考&#xff1a;API参考&#xff1a; 3、工具 三、使用语言模型四、创建代理五、运行…

《安富莱嵌入式周报》第337期:超高性能信号量测量,协议分析的开源工具且核心算法开源,工业安全应用的双通道数字I/O模组,低成本脑机接口,开源音频合成器

周报汇总地址&#xff1a;http://www.armbbs.cn/forum.php?modforumdisplay&fid12&filtertypeid&typeid104 视频版&#xff1a; https://link.zhihu.com/?targethttps%3A//www.bilibili.com/video/BV1PT421S7TR/ 《安富莱嵌入式周报》第337期&#xff1a;超高性…

【Spring Boot】分层开发 Web 应用程序(含实例)

分层开发 Web 应用程序 1.应用程序分层开发模式&#xff1a;MVC1.1 了解 MVC 模式1.2 MVC 和三层架构的关系 2.视图技术 Thymeleaf3.使用控制器3.1 常用注解3.1.1 Controller3.1.2 RestController3.1.3 RequestMapping3.1.4 PathVariable 3.2 将 URL 映射到方法3.3 在方法中使用…

用户数据报协议UDP实现可靠传输的思路

一、UDP协议的特点 按照报文来分割发送。不需要建立连接和维护连接。不需要接收确认。速度较快。不确保接收的顺序和发送顺序一样。 二、用UDP实现可靠通信的思路 (一)接收时发送一个确认报文 实现接收确认的机制。 (二)每个报文腾出空间放置序号 发送时设置序号&#xff0c…

如何安装虚拟机Wmware,并且在虚拟机中使用centos系统

1. 前言 大家好&#xff0c;我是jiaoxingk 本篇文章主要讲解如何安装虚拟机&#xff0c;并且在虚拟机中安装centos系统&#xff0c;让windows电脑也能够使用Linux系统 2. 虚拟机的介绍 在安装Vmware之前&#xff0c;我们先做虚拟机的介绍 虚拟机&#xff1a;通过软件虚拟出来的…

Docker拉取镜像报错:x509: certificate has expired or is not yet v..

太久没有使用docker进行镜像拉取&#xff0c;今天使用docker-compose拉取mongo发现报错&#xff08;如下图&#xff09;&#xff1a; 报错信息翻译&#xff1a;证书已过期或尚未有效。 解决办法&#xff1a; 1.一般都是证书问题或者系统时间问题导致&#xff0c;可以先执行 da…

用HAL库改写江科大的stm32入门例子-6-2 定时器外部时钟

实验目的&#xff1a; 熟悉外部时钟的应用。 实验步骤&#xff1a; 创建项目参照前面的文章&#xff0c;集成oled(没有oled,用uart串口传递也可以)选择外部时钟源时钟源参数设置编写代码&#xff1a; 5.1声明全局变量&#xff0c;如果发生定时器中断的时候&#xff0c;在回调…

SW 零件插入零件的重合配合

重合配合有时候会失效,可以先用距离配合代替,之后修改距离尽量接近

AI网络爬虫-自动获取百度实时热搜榜

工作任务和目标&#xff1a;自动获取百度实时热搜榜的标题和热搜指数 标题&#xff1a;<div class"c-single-text-ellipsis"> 东部战区台岛战巡演练模拟动画 <!--48--></div> <div class"hot-index_1Bl1a"> 4946724 </div> …