加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql的高性能压力测试

发布时间:2016-08-08 08:43:11 所属栏目:MySql教程 来源:站长网
导读:前言:根据业务需要,需测试mysql 性能和压力测试. 这里我说下测试方法和 测试过程以及测试中出错的问题 估计很多人 跟我一样 要测试mysql 的性能 压力,网上找
前言:根据业务需要,需测试mysql 性能和压力测试.

这里我说下测试方法和 测试过程以及测试中出错的问题

估计很多人 跟我一样 要测试mysql 的性能 压力,网上找了很多资料有很多,但是很乱,所以这里我做个总结,拿自己的真实服务器测试的。并且 想测多少数据 都能模拟出来!这里只介绍方法。

MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问

mysql来执行测试。

[root@localhost smacks]# mysql -V

mysql  Ver 14.14 Distrib 5.1.69, for redhat-linux-gnu (x86_64) using readline 5.1

mysqlslap --delimiter=";" --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)"  --query="SELECT * FROM a" --concurrency=50 --iterations=200 -uadmin -p123456

–auto-generate-sql, -a
自动生成测试表和数据
–auto-generate-sql-load-type=type
测试语句的类型。取值包括:read,key,write,update和mixed(默认)。
–number-char-cols=N, -x N
自动生成的测试表中包含多少个字符类型的列,默认1
–number-int-cols=N, -y N
自动生成的测试表中包含多少个数字类型的列,默认1
–number-of-queries=N
总的测试查询次数(并发客户数×每客户查询次数)
–query=name,-q
使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。
–create-schema
测试的schema,MySQL中schema也就是database
–commint=N
多少条DML后提交一次
–compress, -C
如果服务器和客户端支持都压缩,则压缩信息传递
–concurrency=N, -c N
并发量,也就是模拟多少个客户端同时执行select。可指定多个值,以逗号或者–delimiter参数指定的值做为分隔符
–engine=engine_name, -e engine_name
创建测试表所使用的存储引擎,可指定多个
–iterations=N, -i N
测试执行的迭代次数
–detach=N
执行N条语句后断开重连
–debug-info, -T
打印内存和CPU的信息
–only-print
只打印测试语句而不实际执行

自动生成一条测试用的语句,不用你写sql进行测试

比如这句的结果是(分别测试了并发为50,和100时,总共进行1000次访问花费的时间 )

这里列出了最大、最小、平均值。均为相同的值,因为只进行了一次测试

mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info -uadmin -p123456

分别 测试 myisam 和 innodb 引擎

Benchmark
        Running for engine myisam
        Average number of seconds to run all queries: 0.638 seconds
        Minimum number of seconds to run all queries: 0.565 seconds
        Maximum number of seconds to run all queries: 0.924 seconds
        Number of clients running queries: 50
        Average number of queries per client: 20
Benchmark
        Running for engine myisam
        Average number of seconds to run all queries: 0.691 seconds
        Minimum number of seconds to run all queries: 0.686 seconds
        Maximum number of seconds to run all queries: 0.696 seconds
        Number of clients running queries: 100
        Average number of queries per client: 10
Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 13.189 seconds
        Minimum number of seconds to run all queries: 12.886 seconds
        Maximum number of seconds to run all queries: 13.337 seconds
        Number of clients running queries: 50
        Average number of queries per client: 20
Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 12.449 seconds
        Minimum number of seconds to run all queries: 12.299 seconds
        Maximum number of seconds to run all queries: 12.592 seconds
        Number of clients running queries: 100
        Average number of queries per client: 10

这个工具 无法 自己规定 多少数据,所以我后来 有拿了 super smack 工具测试

要去网上下载 vegan.net/tony/supersmack/super-smack-1.3.tar.gz

tar zxvf super-smack-1.3.tar.gz

cd super-smack-1.3

./configure --prefix=/usr/local/super-smack-1.3 --with-mysql=/usr/local/mysql/ --with-mysql-lib=/usr/local/mysql/lib/mysql/ --with-mysql-include=/usr/local/mysql/include/mysql/

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读