当前位置:  开发笔记 > 后端 > 正文

MySQL基准测试---sysbench

MySQL基准测试---sysbench一、 在对网站整体性能进行benchmark时,可以使用多种工具,比如大名鼎鼎的ab(Apachebench),http_load等工具。这里我们不关注他们的使用,如果你想了解,可以去这里http://en.wikip SyntaxHi
MySQL基准测试---sysbench
 
一、 在对网站整体性能进行benchmark时,可以使用多种工具,比如大名鼎鼎的ab
(Apache bench),http_load等工具。这里我们不关注他们的使用,如果你想了解,可以去
这里http://en.wikipedia.org/wiki/ApacheBench。
  www.2cto.com  
  重点来说MySQL的基准测试如何进行,也有很多种工具来供我们选择,比如mysqlslap、
sysbench、Super Smack等,其中mysqlslap的使用MySQL官网给出了介绍,Super Smack
是服务器压力测试强有力的工具,那么sysbench便是我们进行MySQL基准测试的很漂亮的工具了。
 
  sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的
性能测试。数据库目前支持MySQL/Oracle/PostgreSQL;
 
  在本次试验中,sysbench版本为:0.4.12 MySQL版本为:5.1.61 ubuntu版本为:10.10
 
  sysbench的基本用法通过 man sysbench 或者 sysbench --help可以方便的看到:
 
  sysbench [general-options]... --test= [test-options] ... command
 
  general-options 暂且不说,test-name 包括fileio/cpu/memory/threads/mutex/oltp 等测试,
command包括prepare/run/cleanup/help/version等
 
  (1)cpu测试
 
  sysbench采用寻找最大素数的方式来测试:命令如下
 
  root@ubuntu:~#sysbench --test=cpu --cpu-max-prime=1500 run
 
  
 
从total time: 一行可以看出在求得1500以内的最大素数时使用了3.2214s
 
  (2)fileio测试
 
  使用fileio测试,首先得生成文件,然后对文件或读或写,测试fileio性能
 
  生成文件:sysbench --test=fileio prepare ,使用fileio命令时,会有很多参数,可以使用
--file-block-size指定单个文件大小,可以使用--file-total-size指定整个文件的大小,但是这里
使用默认参数,单个文件大小为16M,整个文件大小为2G。如下所示:
 
  
 
这里总共生成了128个文件。读写文件sysbench --test=fileio --file-test-mode=rndrw run,
如下所示:
  
 
在这份报告中,有两个参数很值得我们关注,即每秒的请求数和总体的吞吐量,比如上面的就
是785.16 Requests/sec 和12.268Mb/sec,这两个参数对于评估磁盘的性能很有帮助。在完成测
试后,需要将测试数据删除: sysbench --test=fileio cleanup
 
  (3)oltp 测试
 
  首先生成数据:sysbench --test=oltp --oltp-table-size=2000000 --oltp-table-name=tt -
-mysql-db=test --mysql-user=root --msyql-password=123 prepare ,这里测试用户名:root
密码:123
 
生成数据后,进行测试,使用8个线程进行测试,如下所示:
 
 
以上数据对于分析多线程事务处理很有帮助,比如事务总统计数,每秒事务的处理量等等,
 
  sysbench对于其他的测试类似。。。
 
  二、对于MySQL的性能分析,在服务器内部有很多很好的命令来供我们使用,比如
show status/show processlist/show innodb status
 
使用show status 中,“Select%”一般指不同类型的连接执行计划,“Handler%”一般指存储引
擎的相关信息,“Sort%”一般指排序的相关信息,“Created%”一般指新建临时表的相关信息。
一般也可以使用mysqlreport对信息进行统计打印。而show processlist 也打印出了相关参数,
此时可以使用Innotop代替进行方便分析,或者使用mytop来分析。如果是在回话中使用,则需要
添加session 参数,即show session status; 使用show processlist 可以定位到mysql连接和进
程故障,这一功能一般需要和prep netstat psof ps等联合使用。使用tcpdump工具可以抓包分析
流量。innotop 和tcpdump的强大功能以后再分析。
 
推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有