返回顶部
首页 > 资讯 > 数据库 >[MySQL]-压力测试之Sysbench
  • 399
分享到

[MySQL]-压力测试之Sysbench

mysql压力测试数据库 2023-09-04 07:09:18 399人浏览 薄情痞子
摘要

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

[Mysql]-压力测试之Sysbench

文章目录


森格 | 2022年12月

本文是对压力测试工具sysbench从部署、测试以压测结果的个人总结


一、Sysbench概况

1)介绍

在前一篇文章中对TPCC这款工具做了介绍,它的主要压测有特定的场景,而本文介绍的Sysbench是一款基于luaJIT的,模块化多线程基准测试工具,常用于数据库基准测试。

2)安装部署

如果想多了解一下Sysbench的细节的话,这里是Sysbench的GitHub的地址:

https://github.com/akopytov/sysbench

下面一起来进行安装部署

curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bashsudo yum -y install sysbenchsysbench --version

二、实战


1)构造测试数据

mysql>create database loadtest;hostname>sysbench --db-driver=mysql --mysql-db=loadtest --report-interval=10 --mysql-user=xxxxxx --mysql-passWord=xxxxx --mysql-port=3306 --mysql-host=127.0.0.1 --tables=64 --table-size=10000000 --threads=20 oltp_read_write prepare
  • –db-driver=mysql:基于MySQL的驱动连接数据库

  • –time=300:连续访问300s。

  • –threads=10:用10个线程模拟并发访问。

  • –report-interval=10:每隔一秒输出压测情况。

  • –mysql-host=127.0.0.1 --mysqlport=3306 --mysql-user=test_user --mysql-password=test_user:哪个机器、哪个端口、用户名和密码是多少?

  • –mysql-db=test_db --tables=20 --table_size=1000000:在哪个数据库中,构造多少测试表,每个测试表中构造多少测试数据?

  • 测试模式:

    • prepare & run:准备输据 & 开始压测
    • oltp_read_only:测试只读性能
    • oltp_read_write:测试综合读写性能
    • oltp_delete:测试删除性能
    • oltp_update_index:测试更新索引字段性能
    • oltp_update_non_index:测试更新非索引字段性能
    • oltp_insert:测试插入性能
    • oltp_write_only:测试写入性能

2)开始运行


在这里插入图片描述

压测结果解读

在这里插入图片描述

  • thds:10个线程在压测。
  • tps:每秒执行9059.99个事务
  • qps:每秒执行9859.88个请求,(r/w/o:这些请求中读/写/其他请求分别的多少)。
  • lat(ms,95%):95%的请求的延迟都在4.65ms以下,0个错误请求,0次网络重连。

最终结果

在这里插入图片描述

SQL statistics:    queries perfORMed:        read:591808 //300s的压测期间执行了59万多次的读请求        write:                           169088 //压测期间执行了16万多次的写请求        other:                           84544  //压测期间执行了8万多次的其他请求        total:                           845440 //一共执行了84万多次的请求        // 这是说一共执行了4万多个的事务,每秒执行140+事务    transactions:                        42272  (140.87 per sec.)    // 这是说一共执行了84万多次的请求,每秒执行2817+请求    queries: 845440 (2817.31 per sec.)    ignored errors:                      0      (0.00 per sec.)    reconnects:                          0      (0.00 per sec.)// 一共执行了300s的压测,执行了4万+的事务General statistics:    total time:                          300.0854s    total number of events:              42272Latency (ms):         min:       10.18  // 请求中延迟最小的是10.18ms         avg:      141.96  // 所有请求平均延迟是141.96ms         max:     2200.01  // 延迟最大的请求是2200.01ms         95th percentile:                      292.60  // 95%的请求延迟都在292.60ms以内         sum:  6000792.76  // 总共请求为6000792.76msThreads fairness:    events (avg/stddev):           2113.6000/16.31    execution time (avg/stddev):   300.0396/0.03

三、总结


介绍了压测工具Sysbench,如何生成测试表和数据,几种不同的测试模式:oltp_/read_write/read_only/delete/update_index/update_non_index/insert,以及对每秒测试报告、总测试报告的分析。

来源地址:https://blog.csdn.net/liangsena/article/details/128151041

您可能感兴趣的文档:

--结束END--

本文标题: [MySQL]-压力测试之Sysbench

本文链接: https://www.lsjlt.com/news/393109.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作