mysql 基准测试 基准测试策略
集成式(将整个应用包括mysql作为整体)、单组件式(单独测试mysql系统)
基准测试指标
吞吐量、响应时间、扩展性、并发性
基准测试工具
集成测试工具:ab、http_load、JMeter
但组件测试工具:mysqlslap、sysbench、database test suite、mysql benchmark suit、super smack
基准测试样例
1)http_loadurls.txt=>
http://www.mysqlperformanceblog.com/
http://www.mysqlperformanceblog.com/page/2
http://www.mysqlperformanceblog.com/mysql-patches/
http://www.mysqlperformanceblog.com/msyql-performance-presentations/
http://www.mysqlperformanceblog.com/2006/09/06/slow-query-log-analyzes-tools/
循环读取访问url连接。测试最快访问速度
$ http_load -parallel 1 -seconds 10 urls.txt
=>测试结果
5个并发用户,循环方式读取url连接,测试访问速度
$http_load -parallel 5 -seconds 10 urls.txt
按访问比率测试相关结果(按每秒5次请求计)
$http_load -rate 5 -seconds 10 urls.txt
仿真更多负载,将访问比率提高到每秒20个请求。
$http_load -rate 20 -seconds 10 urls.txt 2)使用sysbench
oltp 基准测试可以仿真事务处理的工作负荷。
准备测试用表
$sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root repare
以8个并发线程,只读模式,运行基准测试60秒
$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
运行显示:
事务数总计
每秒事务处理量
每请求的统计信息
线程公平性统计信息,用来表示仿真的工作负荷如何被“公平”分配
3)数据库测试工具集中的dbt2 TPC-C
准备数据
src/datagen -w 10 -d /mnt/data/dbt2-w10
加载数据到mysql数据库
scripts/mysql/mysql_load_db.sh -d dbt2w10 -f /mnt/data/dbt2-w10 -s /var/lib/mysql/mysql.sock
运行基准测试
run_mysql.sh -c 10 -w 10 -t 300 -n dbt2w10 -u root -o /var/lib/mysql/mysql.sock -e
运行显示
显示每分钟系统可以处理的事务数,数字越大越好
4)mysql基准测试集
运行全部测试
$ cd /usr/share/mysql/sql-bench/ sql-bench$ ./run-all-tests --server=mysql --user=root --log --fast