第二章 MySQL基准测试

目录

2.1 为什么需要基准测试

2.2 基准测试的策略

2.3 测试指标

2.4 获取系统性能和状态

2.5 常用基准测试工具及案例

2.5.1 集成式测试工具

2.5.2 单组件式测试工具


2.1 为什么需要基准测试

基准测试可以观察系统在不同压力下的行为,评估系统的容量。场景包括但不限于:

  • 验证基于系统的一些假设
  • 重现系统中的某些异常行为
  • 测试系统当前的运行情况
  • 模拟比当前系统更高的负载,以找出系统随着压力增加而可能遇到的扩展性瓶颈
  • 规划未来的业务增长
  • 测试应用适应可变环境的能力
  • 测试不同硬件、软件和操作系统配置

2.2 基准测试的策略

集成式(full-stack):针对整个系统的整体测试

单组件式(single-component):针对mysql测试

2.3 测试指标

吞吐量、响应时间或延迟、并发性、可扩展性

2.4 获取系统性能和状态

#! /bin/sh
INTERVAL = 5
PREFIX = $INTERVAL-sec-status
RUNFILE = /home/benchmarks/running
mysql -e 'SHOW GLOBAL VARIABLES' >> mysql-variables
while test -e $RUNFILE; do
    file=$(date +%F_%I)
    sleep=$(date +%s.%N | awk "{print $INTERVAL - (\$1 % $INTERVAL)}")
    sleep $sleep
    ts="$(date + "TS %s.%N %F %T")"
    loadavg="$(uptime)"
    echo "$ts $loadavg" >> $PREFIX-${file}-status
    mysql -e 'SHOW GLOBAL STATUS' >> $PREFIX-${file}-status &
    echo "$ts $loadavg" >> $PREFIX-${file}-innodbstatus
    mysql -e 'SHOW ENGINE INNODB STATUS\G' >> $PREFIX-${file}-innodbstatus &
    echo "$ts $loadavg" >> $PREFIX-${file}-processlist
    mysql -e 'SHOW FULL PROCESSLIST\G' >> $PREFIX-${file}-processlist &
    echo $ts
done
echo Exiting beacause $RUNFILE does not exist.

2.5 常用基准测试工具及案例

2.5.1 集成式测试工具

  • ab:Apache HTTP服务器基准测试工具。它可以测试HTTP服务器每秒最多可以处理多少请求。只能针对单个url进行压力测试。
  • http_load:和ab类似
  • ⭐️JMeter:可以测试web应用、数据库查询测试等

2.5.2 单组件式测试工具

  • 🌟sysbench:多线程系统压测工具。不仅可以用来测试数据库的性能,也可以测试运行数据库的服务器性能。
# cpu基准测试
sysbench --test=cpu --cpu-max-prime=20000 run

#I/O基准测试
#1.创建一个数据集
sysbench --test=fileio --file-total-size=150G prepare
#2.针对不同I/O类型测试:seqwr(顺序写入)、seqrewr(顺序重写)、seqrd(顺序读取)、rndrd(随机读取)、rndwr(随机写入)、rndrw(混合随机读/写)
sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
#3.清除测试文件
sysbench --test=fileio --file-total-size=150G cleanup

#OLTP基准测试:模拟一个简单的事务处理系统的工作负载(8个并发线程,只读模式,测试时长60s)
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root prepare
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值