• 已删除用户
Administrator
发布于 2021-05-08 / 486 阅读
2

MySQL的基准测试

MySQL的基准测试

一、基准测试

概念:基准测试是针对系统设计的一种压力测试。可以观察系统在不同压力下的行为,评估系统的容量,掌握那些是重要的变化,或者观察系统如何处理不同的数据。

1.1基准测试的策略

主要有两种策略:一是针对整个系统的整体测试(集成),二是单独测试MySQL(单组件);

1.2基准测试的指标

吞吐量:吞吐量指的是单位时间内事务处理数。这是一个 经典的数据库应用测试指标,主要针对在线事务处理系统(OLTP)的测试;

响应时间或者延迟:这个指标用于测试任务所需的整体时间。

并发性:非常重要但又经常被误解误用的指标。指在任意时间内有多少同时发生的并发请求。并发性测试通常不是为了测试应用能达到的并发度,而是为了测试应用在不同并发下的性能。

可扩展性:给系统增加一倍的工作,在理想情况下就能获得两倍的结果,就可以获得两倍的吞吐量。

二、基准测试工具

2.1http_load(集成)

简单用法:

a、编写测试url.txt

image-20210508112020171

b、执行测试命令

#循环请求给定的url列表,测试程序会最快的请求这些url
http_load -parallel 1 -second 10 url.txt
#模拟5个用户并发进行请求
http_load -parallel 5 -second 10 url.txt
#每秒5次发送请求
http_load -rate 5 -second 10 url.txt

2.2sysbench(单组件)

不仅设计用来测试数据库的性能,也可以测试运行数据库的服务器的性能。

2.2.1服务器cpu和io

#测试服务器cpu性能
./sysbench --test=cpu --cpu-max-prime=20000 run

#测试服务器io性能
#第一步,准备10G文件
./sysbench --test=fileio --file-total-size=10G prepare
#第二步,进行io测试
#参数说明:seqwr(顺序写入),seqrewr(顺序写入),seqrd(顺序读取),rndrd(随机读取),rndwr(随机写入),rdnrw(混合随机读/写)
./sysbench --test=fileio --file-total-size=10G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
#第三步,清楚文件
./sysbench --test=fileio --file-total-size=10G cleanup

2.2.2数据库

#准备100000的测试数据
./sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=Wt@359478 prepare
#进行测试,举例:8线程、只读模式、测试时长60s
./sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=Wt@359478 --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run

image-20210508113553920

测试结果包含:总的事务数,每秒事务数,时间统计信息,线程公平性统计、用于表示模拟负载的公平性。

三、总结

原文介绍了很多关于基准测试的介绍和工具,如果有兴趣的朋友,可以去看原文。因时间精力有限,我就按需记录啊。