对数据库进行基准测试,以掌握数据库的性能情况是非常必要的。因此对数据库的性能指标进行定量的、可复现的、可对比的测试就显得非常的重要。
一、MySQL的基准测试与sysbench
MySQL的基准测试可以理解为是对数据库运行时的一种压力测试。但这样的测试不关心业务逻辑,更加简单、直接、易于测试。测试时使用的数据可以由工具生成,不要求真实。MySQL数据库基准测试时的关键指标包括以下3个方面:
- TPS/QPS:衡量吞吐量。
- 响应时间:包括平均响应时间、最小响应时间、最大响应时间、时间百分比等,其中时间百分比参考意义较大,如前95%的请求的最大响应时间。。
- 并发量:同时处理的查询请求的数量。
MySQL利用sysbench基准测试工具可以很好地完成数据库的基准测试工作。sysbench支持多线程的工作,并且能够实现跨平台的安装部署。
视频讲解如下:
数据库的基准测试 |
---|
【赵渝强老师】数据库的基准测试 |
二、【实战】安装和使用sysbench
下面通过具体的步骤来演示如何安装sysbench,以及它的基本使用方法。
(1)sysbench可以通过yum方式直接进行安装,执行下面的语句。
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | bash
yum -y install sysbench
(2)查看sysbench的版本信息。
sysbench --version
输出的信息如下:
sysbench 1.0.20
(3)查看sysbench的使用帮助。
sysbench --help
输出的信息如下:
Usage:
sysbench [options]... [testname] [command]
其中:
-
options代表sysbench进行测试时所使用的参数,主要分为通用选项和MySQL专用选项。下表列举了具体的选项名称和它们的含义。
-
testname指定了要进行测试的名称。
-
command代表sysbench要执行的命令,包括prepare、run和cleanup三个命令:prepare是为测试提前准备数据;run是执行正式的测试;cleanup是在测试完成后对数据库进行清理。
(4)使用sysbench测试服务器的CPU性能
sysbench cpu --cpu-max-prime=20000 --threads=2 run
提示:sysbench对CPU的测试主要是进行素数的加法运算进行测试,其中:
–cpu-max-prime: 生成素数的数量上限。
–threads: 启动进行素数计算的线程数。
输出的信息如下:
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
#指定线程个数
Number of threads: 2
Initializing random number generator from current time
#每个线程产生的素数上限为2万个
Prime numbers limit: 20000
Initializing worker threads...
Threads started!
CPU speed:
#所有线程每秒完成了342.47次event
events per second: 342.47
General statistics:
total time: 10.0052s #共耗时10.0052秒
total number of events: 3427 #在10.0052秒内共完成了3427次event
Latency (ms):
min: 2