用mysqlslap压测mysql
参考文献:http://my.oschina.net/costaxu/blog/108568
上面网友详细的列举了用mysqlslap对mysql的压力测试结果,我也照葫芦画瓢试了一次,结果如下:
以下命令代表:用10个并发连接,对一个有10个int列,10个varchar列,两个索引的表进行写操作
mysqlslap --concurrency= --iterations= --number-int-cols= --number-char-cols= -a --auto-generate-sql-add-autoincrement --number-of-queries= --auto-generate-sql-load-type=write -auto-generate-sql-secondary-indexex= --engine=myisam,innodb -h10.210.214. -P3306 -uroot -proot --debug-info
结果:
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.694 seconds
Minimum number of seconds to run all queries: 0.694 seconds
Maximum number of seconds to run all queries: 0.694 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 3.446 seconds
Minimum number of seconds to run all queries: 3.446 seconds
Maximum number of seconds to run all queries: 3.446 seconds
Number of clients running queries:
Average number of queries per client:
TPS:
myisam=7205
innodb=1451
通过改变参数--concurrency=50和--concurrency=100来更改并发数,分别试验两次,结果如下:
mysqlslap --concurrency= --iterations= --number-int-cols= --number-char-cols= -a --auto-generate-sql-add-autoincrement --number-of-queries= --auto-generate-sql-load-type=write -auto-generate-sql-secondary-indexex= --engine=myisam,innodb -h10.210.214. -P3306 -uroot -proot --debug-info Benchmark
Running for engine myisam
Average number of seconds to run all queries: 8.991 seconds
Minimum number of seconds to run all queries: 8.991 seconds
Maximum number of seconds to run all queries: 8.991 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 46.858 seconds
Minimum number of seconds to run all queries: 46.858 seconds
Maximum number of seconds to run all queries: 46.858 seconds
Number of clients running queries:
Average number of queries per client:
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 9.687 seconds
Minimum number of seconds to run all queries: 9.687 seconds
Maximum number of seconds to run all queries: 9.687 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 57.171 seconds
Minimum number of seconds to run all queries: 57.171 seconds
Maximum number of seconds to run all queries: 57.171 seconds
Number of clients running queries:
Average number of queries per client: mysqlslap --concurrency= --iterations= --number-int-cols= --number-char-cols= -a --auto-generate-sql-add-autoincrement --number-of-queries= --auto-generate-sql-load-type=write -auto-generate-sql-secondary-indexex= --engine=myisam,innodb -h10.210.214. -P3306 -uroot -proot --debug-info Benchmark
Running for engine myisam
Average number of seconds to run all queries: 7.060 seconds
Minimum number of seconds to run all queries: 7.060 seconds
Maximum number of seconds to run all queries: 7.060 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 44.711 seconds
Minimum number of seconds to run all queries: 44.711 seconds
Maximum number of seconds to run all queries: 44.711 seconds
Number of clients running queries:
Average number of queries per client:
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 6.730 seconds
Minimum number of seconds to run all queries: 6.730 seconds
Maximum number of seconds to run all queries: 6.730 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 39.591 seconds
Minimum number of seconds to run all queries: 39.591 seconds
Maximum number of seconds to run all queries: 39.591 seconds
Number of clients running queries:
Average number of queries per client:
并发50 myisam TPS= 5354
并发50 innodb TPS= 961
并发100 myisam TPS= 7252
并发100 innodb TPS= 1186
下面又测试了读的性能:
mysqlslap --concurrency= --iterations= --number-int-cols= --number-char-cols= -a --auto-generate-sql-add-autoincrement --auto-generate-sql-unique-query-number= --auto-generate-sql-load-type=key --number-of-queries= --engine=myisam,innodb -h10.210.214. -P3306 -uroot -proot --debug-info Benchmark
Running for engine myisam
Average number of seconds to run all queries: 4.172 seconds
Minimum number of seconds to run all queries: 4.071 seconds
Maximum number of seconds to run all queries: 4.274 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 4.094 seconds
Minimum number of seconds to run all queries: 4.070 seconds
Maximum number of seconds to run all queries: 4.118 seconds
Number of clients running queries:
Average number of queries per client: mysqlslap --concurrency= --iterations= --number-int-cols= --number-char-cols= -a --auto-generate-sql-add-autoincrement --auto-generate-sql-unique-query-number= --auto-generate-sql-load-type=key --number-of-queries= --engine=myisam,innodb -h10.210.214. -P3306 -uroot -proot --debug-info
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 4.212 seconds
Minimum number of seconds to run all queries: 4.134 seconds
Maximum number of seconds to run all queries: 4.290 seconds
Number of clients running queries:
Average number of queries per client: Benchmark
Running for engine innodb
Average number of seconds to run all queries: 4.232 seconds
Minimum number of seconds to run all queries: 4.125 seconds
Maximum number of seconds to run all queries: 4.339 seconds
Number of clients running queries:
Average number of queries per client:
具体数值不用算了,TPS都在10000+
结论:
myisam和innodb两种引擎下,读时性能差不多,写时myisam比innodb要强很多
另外,读时TPS=10000+,这个结果我压根就不信,完全随机的读硬盘的话,硬盘的IOPS大概也就几百左右,因此10000+的结果原因可能为:
a: 测试表中数据太少,数据基本都被缓存了,直接都是从缓存中读的数据
b:mysqlslap生成的SQL语句不够随机,读时永远都是那么几条数据,肯定就命中缓存了
所以以上结果仅供参考罢了。。。。
参考文献中的作者思路很清晰,但用并发数=2来测试未免有点太小气了,所以他的数值肯定没有什么参考价值了
用mysqlslap压测mysql的更多相关文章
- mysqlslap压测
mysqlslap 是MySQL自带的压测工具: -P --create-schema=test -S /tmp/mysql_sandbox18601.sock --number-of-queries ...
- sysbench 环境安装,压测mysql
源码路径:https://github.com/akopytov/sysbench 版本linux 6.8sysbench 0.5mysql 5.6.29 1.安装pip略 2.pip 安装bzr p ...
- jmeter压测mysql数据库
jmeter连接并压测mysql数据库,之前一直想用jmeter一下测试mysql数据库的性能,今天偶然看到一篇博客,于是乎开始自己动手实践. 一.准备工作 1.安装好mysql数据库,可以安装在本地 ...
- MySQL mysqlslap压测
200 ? "200px" : this.width)!important;} --> 介绍 mysqlslap是mysql自带的一个性能压测工具:mysqlslap用于和其 ...
- 【Jmeter】压测mysql数据库中间件mycat
背景 因为博主所负责测试的项目需要数据库有较大的吞吐量,在最近进行了升级,更新了一个数据库中间件 - - mycat.查询了一些资料,了解到这是阿里的一个开源项目,基于mysql,是针对磁盘的读与写, ...
- 用sysbench压测MySQL,通过orzdba监控MySQL
1.1 安装sysbench wget https://codeload.github.com/akopytov/sysbench/zip/0.5 unzip 0.5 cd sysbench-0.5/ ...
- mysqlslap 压测工具使用说明
PS:今天一同事问我有木有比较靠谱的mysql压力测试工具可用.其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的.下面举例说说.mysqlslap是从5.1.4版开始的一 ...
- 【Jmeter 压测MySql连接问题】
JDBC Request :Cannot load JDBC driver class 'com.mysql.jdbc.Driver'解决办法 在Jmeter中run JDBC Request时, ...
- sysbench压测mysql
MySQL数据库测试 select 1.先创建数据库test,再准备数据 time /usr/local/sysbench/bin/sysbench --test=oltp --num-threa ...
随机推荐
- power shell upload file to azure storage
# Azure subscription-specific variables. $storageAccountName = "storage-account-name" $con ...
- EA UML 建模——类图
Enterprise Architect(EA) 是一个功能比较强悍的建模工具,本篇文章仅使用其 UML 建模功能,其他更多功能,可以Google. 一.简单梳理C#中类与类.类与接口.接口与接口的关 ...
- Node之express
Express 是一个简洁.灵活的 node.js Web 应用开发框架, 它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用. 如何安装: npm install -g express ...
- Lucene 排序 Sort与SortField
在sql语句中,有升序和降序排列.在Lucene中,同样也有. Sort里的属性 SortField里的属性 含义 Sort.INDEXORDER SortField.FIELD_DOC 按照索引的顺 ...
- c++预编译问题:fatal error C1083: Cannot open precompiled header file: 'Debug/DllTest.pch': No such file or d
1)单独编译StdAfx.cpp 2)编译所有(即按Ctrl+F7) 这时因为该模块没有包括预编译头文件“stdafx.h”的缘故.VC用一个stdafx.cpp包含头文件stdafx.h,然后在st ...
- 精通 Oracle+Python,第 7 部分:面向服务的 Python 架构
面向服务的架构 (SOA) 在当今的业务战略中具有至关重要的作用.混搭企业组件已成为所有任务关键的企业应用程序的标准要求,从而确保在企业架构的各层实现顺畅的服务编排.对此,Python 是一个不错的选 ...
- #Leet Code# Binary Tree Max[待精简]
描述:递归调用,getMax返回 [节点值,经过节点左子节点的最大值,经过节点右节点的最大值],每次递归同时查看是否存在不经过节点的值大于max. 代码:待优化 def getLargeNode(se ...
- IOS 项目名称修改(XCODE4.6)
最近为了保存苹果商店已有版本软件,打算重新上传一个程序,与原来的软件仅样式不同.在修改网plist文件中的名称后,archive时报错了,结果发现时工程名称没有修改到.下面就与大家分享下修改已有项目名 ...
- JDK源码阅读(五)java.io.Serializable接口
package java.io; public interface Serializable { } (1)实现Serializable接口的类,将会被提示提供一个 serialVersionUID ...
- 关于Java(常用数据类型)
工作中,除非特殊需要,一般使用的数据类型较为单一. int int 是最常用的类型之一,一般能满足判断或循环的需求 float 或 double 两个浮点类型,可以在一定程度上确保数据的精度 BigD ...