建立库、表,导入数据用于测试。此过程由单线程完成。node
开始进行压力测试。该步骤能够使用多线程完成。mysql
清理测试数据。此过程由单线程完成。nginx
~]# mysqlslap -uroot -p --auto-generate-sql --auto-generate-sql-load-type=mixed --auto-generate-sql-add-autoincrement Enter password:Benchmark#运行全部语句的平局时间,单位秒Average number of seconds to run all queries: 0.018 seconds#运行全部语句的最小秒数Minimum number of seconds to run all queries: 0.018 seconds#运行全部语句的最大秒数Maximum number of seconds to run all queries: 0.018 seconds#客户端数量Number of clients running queries: 1#每一个客户端运行查询的平均数Average number of queries per client: 0
--auto-generate-sql:自动生成测试表和数据,mysqlslap工具本身生成sql脚本进行测试。git
--auto-generate-sql-load-type:指定测试语句的类型。取值包括:read,key,write,update和mixed(默认)。github
--auto-generate-sql-add-autoincrement:生成的表中会添加自增列。sql

mysqlslap -uroot -p --auto-generate-sql --auto-generate-sql-load-type=mixed --concurrency=100 --number-of-queries=1000
--concurrency=100:指定同时有100个客户端链接
--number-of-queries=1000:指定总的测试查询次数,该值除以concurrency的值就是每一个客户端执行的查询次数。数据库

mysqlslap --delimiter=";" --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)" --query="SELECT * FROM a" --concurrency=50 --iterations=200
mysqlslap -uroot -p --concurrency=5 --iterations=20 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql
mysqlslap --concurrency=5 --iterations=5 --query=query.sql --create=create.sql --delimiter=";"
cd sysbench-0.5./autogen.sh./configure --prefix=/usr/local/sysbench --build=x86_64make && make installcp /usr/local/sysbench/bin/sysbench /usr/bin/验证sysbench安装是否成功。[root@node1 ~]# sysbench --versionsysbench 0.5
[root@node1 ~]# sysbench --test=cpu --cpu-max-prime=2000 runsysbench 0.5: multi-threaded system evaluation benchmarkRunning the test with following options:Number of threads: 1Random number generator seed is 0 and will be ignored…………………………General statistics:total time: 1.1302s…………………………….
sysbench --test=memory --memory-block-size=8k --memory-total-size=100G run
sysbench --test=fileio --num-threads=20 --file-total-size=2G --file-test-mode=rndrw prepare
sysbench --test=fileio --num-threads=20 --file-total-size=2G --file-test-mode=rndrw run
sysbench --test=fileio --num-threads=20 --file-total-size=2G --file-test-mode=rndrw cleanup
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=root prepare
mysql> select count(*) from sbtest1;+----------+| count(*) |+----------+| 1000000 |+----------+
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=root --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
OLTP test statistics: queries performed: read: 407498 write: 0 other: 58214 total: 465712 transactions: 29107 (485.07 per sec.) requests: 407498 (6790.91 per sec.) other operations: 58214 (970.13 per sec.) ignored errors: 0 (0.00 per sec.) reconnects: 0 (0.00 per sec.)General statistics: total time: 60.0064s total number of events: 29107 total time taken by event execution: 479.9865s response time: min: 1.55ms avg: 16.49ms max: 539.30ms 95 percentile: 25.98ms Threads fairness: events (avg/stddev): 3638.3750/42.84 execution time (avg/stddev): 59.9983/0.00
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=root cleanup
本文分享自微信公众号 - MySQL数据库技术栈(Mysqltechnology)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。bash