MySQL性能测试

基准测试

工具:sysbench

安装:yum -y install sysbench

准备数据:

sysbench xxx.lua --mysq-host=127.0.0.1 --mysq-port=3306 --mysql-user=root --mysql-password=password --threads=104 --time=120 --report-interval=10 --mysql-db=test_shaolin prepare

启用104个线程,运行120s,每10秒打印一次统计数据,数据库的database是test_shaolin,执行指定的lua脚本

运行:

就是把prepare换成run

数据清理:

就是把prepare换成cleanup

SQL statistics:

    queries performed:

        read:                            0

        write:                          1759525

        other:                          0

        total:                          1759525

transactions:                        1759525 (14660.96 per sec.【tps】)

queries:                            1759525 (14660.96 per sec.【qps】)

    ignored errors:                      0      (0.00 per sec.)

    reconnects:                          0      (0.00 per sec.)

General statistics:

    total time:                          120.0129s

    total number of events:              1759525

Latency (ms):

        min:                                    2.41

        avg:                                    2.73

        max:                                  83.72

        95th percentile:                        2.91

        sum:                              4796533.45

Threads fairness:

    events (avg/stddev):          43988.1250/1548.42

    execution time (avg/stddev):  119.9133/0.01

jmeter进行真实sql压测

1.首先添加一个线程组

然后添加一个配置元件-JDBC Connection Configuration

简单来说:

Variable Name: 变量名称,需要变量名绑定到池。需要唯一标识。与JDBC取样器中的相对应,决定JDBC取样的配置。简单理解就是在JDBC request的时候确定去哪个绑定的配置。

Max Number of Connection: 数据库最大链接数

PoolTimeout: 数据库链接超时,单位ms

Idle Cleanup Interval (ms): 数据库空闲清理的间隔时间,单位ms

Auto Commit:自动提交。有三个选项,true、false、编辑(自己通过jmeter提供的函数设置)

Transaction Isolation:

事务间隔级别设置,主要有如下几个选项:(对JMX加解密)

【TRANSACTION_NODE   事务节点 、

TRANSACTION_READ_UNCOMMITTED  事务未提交读、

TRANSACTION_READ_COMMITTED   事务已提交读 、

TRANSACTION_SERIALIZABLE   事务序列化 、

DEFAULT  默认、

TRANSACTION_REPEATABLE_READ 事务重复读、编辑

Keep-Alive: 是否保持连接Max  Connection age (ms):最大连接时长,超过时长的会被拒绝Validation Query:验证查询,检验连接是否有效(数据库重启后之前的连接都失效,需要验证查询)。。。。。。

Database URL:如jdbc:mysql://localhost:3306/test   表示本地数据库,3306端口,数据库名称为test

JDBCDriver Class: JDBC的类,如org.gjt.mm.mysql.Driver

2.添加一个JDBC Request取样器


名字一定要跟配置元件那个名字一样,这样才知道是那个连接池

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 从可靠性和使用便利性来讲单机RDBMS完胜N多各类数据库,但当数据量到了一定量之后,又不得不寻求分布式,列存...
    飞稀饭你的微笑阅读 5,057评论 0 1
  • #云计算-产品体验优化私房菜课程(腾讯云篇)# 最近看到一个网友在问(请问一下,每天3~4W次的读写,用什么样子的...
    王冬生阅读 5,455评论 0 3
  • sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。它...
    一起代码_尼科阅读 13,889评论 0 53
  • 性能指标分类 在进行性能测试的指标监控和结果分析时,可以关注以下这几个维度的指标: 系统性能指标 资源性能指标 数...
    猪儿打滚阅读 7,694评论 0 6
  • 0. 参考 TPC-C 基准测试程序在 OLTP 系统中的应用与实现percona tpcc 1. 概要 TPC(...
    GOGOYAO阅读 14,944评论 0 2