mycat学习-3-测试jdbc连接下,mysql和mycat的吞吐性能
2018-03-07 00:18
295 查看
http://www.cnblogs.com/toulon/p/4815659.html
最近一个项目需要数据库有较大的吞吐量,因为项目要求的访问量和数据量较大,决定采用一个数据库中间件来对数据库进行管理。经过一番查询,决定使用阿里的一个开源项目-mycat。因为mycat基于mysql,是针对磁盘的读与写,故在读写速度上理论上会小于等于mysql。为求严谨,在这之前我用java编写程序进行了测试,采用了基本的优化,如连接池测试结果如下: engines:innodb,mysql:20线程,单条插入,速度:300-400/s engines:innodb,mycat控制3个数据源,100个数据库,向一张表插入数据,20线程,单条插入,速度:300-400/s (数据不稳定的原因是因为都是靠我自己掐时间用计算器算的-。-) 这个速度是不满足需求的,后来一个同事想起了曾经接触过的一个基于mysql的数据引擎-----TokuDB。网上关于TokuDB的一条说明让我怦然心动:“插入性能提升9倍”。=。=诚然我是不信的,我要自己试一下。于是我装上了tokudb引擎进行了测试(安装方法在我另一篇文章中)。如下: engines:tokudb,mysql:20线程,单条插入,速度:600-900/s engines:tokudb,mycat控制1个数据源,50个数据库,向一张表插入数据,20线程,单条插入,速度:600-900条/s 从我粗略的测试数据可以看到,tokudb的插入性能提升实际是没有9倍的,这个9倍我估计是峰值。但是2倍的性能提升还是很不错的。要达到客户所说的1200+,至少是看到了希望。 当然,我这个粗略的数据我是不太满意的,于是我决定用专业的压力测试软件----jmeter进行测试。然而,测试的结果让我大是汗颜。 jmeter可以到https://archive.apache.org/dist/jmeter/binaries/ 进行下载,zip版本直接解压即可(如果不行可能需要配置环境变量),点击bin目录下的jmeter.bat运行。 如何进行jdbc的测试呢?步骤如下: 1.在测试计划页面点击浏览,加载进入数据库的驱动包,我使用的mysql,驱动包即mysql-connector-java-5.1.26-bin.jar。 2.在测试计划处右键,新建一个线程组。线程组页面可以配置线程数,我设置成了20,ramp-up period参数的意思是所有的线程将在多少秒内启动,设置为1秒,循环次数即线程会循环执行多少次。 3.在线程组上点击右键,添加-配置原件,选择JDBC Connection Configuration.配置如下:
4.在线程组上点击右键-添加-sampler-JDBC Request.配置如下:
5.点击线程组,添加两个监听器。“图形结果” 和 “查看结果树”。用于监控执行情况。 6.点击菜单栏 运行-启动即可。 下面公布让我汗颜的测试结果: mycat:
mysql:
吞吐量每秒才200条!!!什么鬼!!不过也确实证明了mycat速度上确实是小于等于mysql这一观点... 我只能把速度的降低归结于jmeter这个软件上....希望有知道原理的大神可以告知一下原因=.=
最近一个项目需要数据库有较大的吞吐量,因为项目要求的访问量和数据量较大,决定采用一个数据库中间件来对数据库进行管理。经过一番查询,决定使用阿里的一个开源项目-mycat。因为mycat基于mysql,是针对磁盘的读与写,故在读写速度上理论上会小于等于mysql。为求严谨,在这之前我用java编写程序进行了测试,采用了基本的优化,如连接池测试结果如下: engines:innodb,mysql:20线程,单条插入,速度:300-400/s engines:innodb,mycat控制3个数据源,100个数据库,向一张表插入数据,20线程,单条插入,速度:300-400/s (数据不稳定的原因是因为都是靠我自己掐时间用计算器算的-。-) 这个速度是不满足需求的,后来一个同事想起了曾经接触过的一个基于mysql的数据引擎-----TokuDB。网上关于TokuDB的一条说明让我怦然心动:“插入性能提升9倍”。=。=诚然我是不信的,我要自己试一下。于是我装上了tokudb引擎进行了测试(安装方法在我另一篇文章中)。如下: engines:tokudb,mysql:20线程,单条插入,速度:600-900/s engines:tokudb,mycat控制1个数据源,50个数据库,向一张表插入数据,20线程,单条插入,速度:600-900条/s 从我粗略的测试数据可以看到,tokudb的插入性能提升实际是没有9倍的,这个9倍我估计是峰值。但是2倍的性能提升还是很不错的。要达到客户所说的1200+,至少是看到了希望。 当然,我这个粗略的数据我是不太满意的,于是我决定用专业的压力测试软件----jmeter进行测试。然而,测试的结果让我大是汗颜。 jmeter可以到https://archive.apache.org/dist/jmeter/binaries/ 进行下载,zip版本直接解压即可(如果不行可能需要配置环境变量),点击bin目录下的jmeter.bat运行。 如何进行jdbc的测试呢?步骤如下: 1.在测试计划页面点击浏览,加载进入数据库的驱动包,我使用的mysql,驱动包即mysql-connector-java-5.1.26-bin.jar。 2.在测试计划处右键,新建一个线程组。线程组页面可以配置线程数,我设置成了20,ramp-up period参数的意思是所有的线程将在多少秒内启动,设置为1秒,循环次数即线程会循环执行多少次。 3.在线程组上点击右键,添加-配置原件,选择JDBC Connection Configuration.配置如下:
4.在线程组上点击右键-添加-sampler-JDBC Request.配置如下:
5.点击线程组,添加两个监听器。“图形结果” 和 “查看结果树”。用于监控执行情况。 6.点击菜单栏 运行-启动即可。 下面公布让我汗颜的测试结果: mycat:
mysql:
吞吐量每秒才200条!!!什么鬼!!不过也确实证明了mycat速度上确实是小于等于mysql这一观点... 我只能把速度的降低归结于jmeter这个软件上....希望有知道原理的大神可以告知一下原因=.=
相关文章推荐
- 测试jdbc连接下,mysql和mycat的吞吐性能
- JDBC学习之八:JDBC连接MySQL
- (韩顺平讲解)jdbc学习(四)---java连接mysql
- JMeter学习(八)JDBC测试计划-连接Oracle
- Django学习:今天测试MySQL连接的时候提示Unknown command: 'syncdb'
- JMeter学习(八)JDBC测试计划-连接Oracle
- mysql-proxy学习(四)——性能测试
- MYSQL的JDBC连接测试程序
- MYSQL 的JDBC连接测试程序
- Java学习笔记——JDBC之与数据库MySQL的连接以及增删改查等操作
- JMeter学习JDBC测试计划——连接Oracle
- 在Eclipse中测试MySQL-JDBC(12)自定义连接池
- JDBC学习笔记----环境配置及连接MySQL
- JDBC连接mysql--学习目录
- Oracle 数据库连接(JDBC)学习测试
- 学习记录0321-数据库基础-利用JDBC连接本地MySQL
- JAVA学习笔记-JAVA用JDBC连接MySQL
- Jmeter性能测试,MySQL JDBC request
- MYSQL 的JDBC连接测试程序