用sysbench(或者super-smack)测试mysql性能 文章来源:http://niyunjiu./blog/316471
Sysbench是一款流行的开源基准测试工具,用来测试不同操作系统平台即其上数据库的性能。由于我们目前讨论的是MySQL,我将重点讲解数据库测试部分。 根据我的经验,我 们创建1000万行。Allan有一篇关系测试细节的博客(http://blogs./allanp/entry/tuning_mysql_on_linux)。 安装:
cpu测试 sysbench --test=cpu --cpu-max-prime=20000 run
2、线程测试 sysbench --test=threads --num-threads=64 --thread-yields=100 --thread-locks=2 run
3、磁盘IO性能测试 sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw prepare sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw run sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw cleanup 上述参数指定了最大创建16个线程,创建的文件总大小为3G,文件读写模式为随机读。 4、内存测试 sysbench --test=memory --memory-block-size=8k --memory-total-size=4G run
上述参数指定了本次测试整个过程是在内存中传输 4G 的数据量,每个 block 大小为 8K。 5、OLTP测试 sysbench --test=oltp --mysql-table-engine=myisam --oltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock --mysql-user=test --mysql-host=localhost --mysql-password=test prepare
sysbench --num-threads=8 --max-requests=1000000 --test=oltp --mysql-table-engine=innodb --oltp-table-size=10000000 --mysql-socket=/tmp/mysql.sock --mysql-user=root --mysql-host=localhost --mysql-password=xxxx --mysql-db=sbtest run
上述参数指定了本次测试的表存储引擎类型为 myisam,这里需要注意的是,官方网站上的参数有一处有误,即 --mysql-table-engine,官方网站上写的是 --mysql-table-type,这个应该是没有及时更新导致的。另外,指定了表最大记录数为 1000000,其他参数就很好理解了,主要是指定登录方式。测试 OLTP 时,可以自己先创建数据库 sbtest,或者自己用参数 --mysql-db 来指定其他数据库 。--mysql-table-engine 还可以指定为 innodb 等 MySQL 支持的表存储引擎类型。
以下为本文DB的结果:
OLTP test statistics:
queries performed: read: 140000 write: 50000 other: 20000 total: 210000 transactions: 10000 (1999.02 per sec.) deadlocks: 0 (0.00 per sec.) read/write requests: 190000 (37981.47 per sec.) other operations: 20000 (3998.05 per sec.) Test execution summary: total time: 5.0024s total number of events: 10000 total time taken by event execution: 39.8898 per-request statistics: min: 2.87ms avg: 3.99ms max: 43.48ms approx. 95 percentile: 5.37ms Threads fairness: events (avg/stddev): 1250.0000/27.23 execution time (avg/stddev): 4.9862/0.00 |
|