常见压测
jmeter压测
jmeter的使用还是挺简单的,搜下网上入门文档,直接跟着配置起来就行。支持http请求,支持mysql查询。支持对请求的结果进行判断,支持设置并发度。
压测后才深刻认识到qps和并发度并不是同一个概念,比如开启100个线程同时请求,那么并发是10,但是qps并不是10. 如果每个请求都需要10秒来返回,那么qps其实只有10.如果每个请求只需要100ms就返回,那么qps其实是1000.
jmeter bash运行
客户端配置jmeter压测http请求, bash启动的时候提示说可以使用命令行而非gui客户端运行. 本地机器性能或是网络难以承受高qps的压测, 那么可以上传jmx配置到服务器, 直接远程启动.
mysqlslap进行jdbc压测
其实测试起来还是没有jmeter方便。
- 可以自动生成sample数据进行测试
- 可以测试指定的sql语句, 可以一次执行
mysqlslap --user=root --password=fakePassword --host=fake.sql.tencentcdb.com --port=63530 --concurrency=100 --iterations=50 --create-schema=test --query="select * from test.at_src_sa_test limit 1;"
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 0.546 seconds
Minimum number of seconds to run all queries: 0.283 seconds
Maximum number of seconds to run all queries: 5.099 seconds
Number of clients running queries: 100
Average number of queries per client: 1
How To Measure MySQL Query Performance with mysqlslap