基准测试
在一定条件下通过基准测试建立一个基准线水平,当系统软硬件发生变化后再进行测试以确定变化对于性能的影响。
对于多数Web应用,系统瓶颈易发生在数据库端。因为其他因素可通过增加设备数量实现性能的提高。但数据库由于数据一致性的要求,难以拓展。
与压力测试区别:基准测试不关心业务逻辑,不要求数据真实。
指标
吞吐量:TPS(每秒事务处理数,包括一次消息入+消息出+数据库访问),QPS(每秒查询率,衡量单位时间处理流量的数量)
响应时间:时间百分比参考价值较大
并发量:同时处理的查询请求量
sysbench-mysql
sysbench [options]... [testname] [command]
command
-
prepare是为测试提前准备数据
-
run是执行正式的测试
-
cleanup是在测试完成后对数据库进行清理
testname
在老版本的sysbench中,可以通过--test参数指定测试的脚本;而在新版本中,--test参数已经声明为废弃,可以不使用--test,而是直接指定脚本。
实践
prepare
sysbench /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=100 --mysql-user=root --mysql-password=xxx --mysql-host=192.168.0.103 --mysql-port=3306 --mysql-db=sysbench_test prepare
-
--tables
:指定生成表的数量 -
--table_size
:指定生成表中生成的数据量 -
--mysql-db
: 连接的测试数据库名称
run
sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-user=root --mysql-password=xxx --mysql-host=192.168.0.103 --mysql-port=3306 --mysql-db=sysbench_test --tables=5 --table_size=100 --threads=10 --time=30 --report-interval=3 run
-
threads
:并发线程数 -
time
:执行时间 -
report-interval
:测试信息输出间隔 -
queries
:查询总数及qps -
transactions
:事务总数及tps -
Latency-95th percentile
:前95%的请求的响应时间。
clean
sysbench /usr/share/sysbench/oltp_read_write.lua --tables=5 --table_size=100 --mysql-user=root --mysql-password=xxx --mysql-host=192.168.0.103 --mysql-port=3306 --mysql-db=sysbench_test cleanup
清除数据以防后续影响