最近,将部分开发和测试环境的mysql升级到5.7之后,今天抽时间测试了下5.6和5.7 PK查询的性能,使用mysqlslap进行测试,测试结果发现在低配下,percona 5.6.31大约比5.7.15快20-30%左右,percona 5.7.15比mysql企业版5.7.16快10%左右,如下:

--mysql企业版

mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 72.719 seconds
Minimum number of seconds to run all queries: 72.719 seconds
Maximum number of seconds to run all queries: 72.719 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

--percona 5.7.15

[root@dev-server1 ~]# mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 66.628 seconds
Minimum number of seconds to run all queries: 66.628 seconds
Maximum number of seconds to run all queries: 66.628 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@dev-server1 ~]# mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 66.278 seconds
Minimum number of seconds to run all queries: 66.278 seconds
Maximum number of seconds to run all queries: 66.278 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

--percona 5.6.31

[root@dev-server1 ~]# mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 55.878 seconds
Minimum number of seconds to run all queries: 55.878 seconds
Maximum number of seconds to run all queries: 55.878 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@dev-server1 ~]# mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 57.169 seconds
Minimum number of seconds to run all queries: 57.169 seconds
Maximum number of seconds to run all queries: 57.169 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@dev-server1 ~]# mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 51.820 seconds
Minimum number of seconds to run all queries: 51.820 seconds
Maximum number of seconds to run all queries: 51.820 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@dev-server1 ~]# mysqlslap -h172.18.30.62 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 52.817 seconds
Minimum number of seconds to run all queries: 52.817 seconds
Maximum number of seconds to run all queries: 52.817 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

因为mysql 5.7相比mysql 5.6增加了很多新的特性、同时新增了很多后台线程,所以在达到mysql 5.6的最大并发之前,mysql 5.6在性能上比mysql 5.7更高并不奇怪。因为我们大量服务器部署于阿里云和虚拟化环境,所以不打算也不计划测试在64GB以上的环境。后续会测试在16C/16GB和16C/32GB环境下两者的情况。

上述测试基于centos 7.2,linux内核3.10。

同时,需要注意的是,在不同的vm实例中,即使配置和型号完全相同,也有可能出现TPS上下相差10-20%的情况,这一点尤其需要注意,因为任何时候cpu/内存/服务器进程/线程等都可能在不同程度的运行,即使是空环境亦如此。另外,还需要注意不同的linux/内核版本可能导致性能相差比较大。

在另一个centos 6.3,内核2.6.32的VM实例中,percona 5.6.31的测试如下(平均TPS达到22000)(7.0相同配置下平均18000左右):

[root@dev-server1 ~]# mysqlslap -h172.18.30.193 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -pLd123123
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 42.936 seconds
Minimum number of seconds to run all queries: 42.936 seconds
Maximum number of seconds to run all queries: 42.936 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@dev-server1 ~]# mysqlslap -h172.18.30.193 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -pLd123123
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 43.359 seconds
Minimum number of seconds to run all queries: 43.359 seconds
Maximum number of seconds to run all queries: 43.359 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@dev-server1 ~]# mysqlslap -h172.18.30.193 -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -pLd123123
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 47.033 seconds
Minimum number of seconds to run all queries: 47.033 seconds
Maximum number of seconds to run all queries: 47.033 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

------------晚上临时找了两个环境,测试了下centos 6.5 8C/16GB阿里云下,如下-------------------

percona 5.7.15

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 28.632 seconds
Minimum number of seconds to run all queries: 28.632 seconds
Maximum number of seconds to run all queries: 28.632 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=400 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 26.167 seconds
Minimum number of seconds to run all queries: 26.167 seconds
Maximum number of seconds to run all queries: 26.167 seconds
Number of clients running queries: 400
Average number of queries per client: 2500

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# 2016-11-10T11:37:06.099118Z mysqld_safe mysqld from pid file /usr/local/Percona-Server-5.7.15-9-Linux.x86_64.ssl101/data/iZbp14bngbtxcrrha173qvZ.pid ended

[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=400 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 26.266 seconds
Minimum number of seconds to run all queries: 26.266 seconds
Maximum number of seconds to run all queries: 26.266 seconds
Number of clients running queries: 400
Average number of queries per client: 2500

[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=400 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 25.370 seconds
Minimum number of seconds to run all queries: 25.370 seconds
Maximum number of seconds to run all queries: 25.370 seconds
Number of clients running queries: 400
Average number of queries per client: 2500

[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]#
[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=600 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 24.399 seconds
Minimum number of seconds to run all queries: 24.399 seconds
Maximum number of seconds to run all queries: 24.399 seconds
Number of clients running queries: 600
Average number of queries per client: 1666

=====================

percona 5.6.31

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=200 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 29.882 seconds
Minimum number of seconds to run all queries: 29.882 seconds
Maximum number of seconds to run all queries: 29.882 seconds
Number of clients running queries: 200
Average number of queries per client: 5000

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=400 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 25.210 seconds
Minimum number of seconds to run all queries: 25.210 seconds
Maximum number of seconds to run all queries: 25.210 seconds
Number of clients running queries: 400
Average number of queries per client: 2500

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=400 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 26.084 seconds
Minimum number of seconds to run all queries: 26.084 seconds
Maximum number of seconds to run all queries: 26.084 seconds
Number of clients running queries: 400
Average number of queries per client: 2500

[root@iZbp11t4fzcyfwa9k5eb77Z ~]# mysqlslap -hXXX -P3306 --concurrency=600 --create-schema='spider' --query='select * from test_250byte where id=1;' --number-of-queries=1000000 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Benchmark
Average number of seconds to run all queries: 24.896 seconds
Minimum number of seconds to run all queries: 24.896 seconds
Maximum number of seconds to run all queries: 24.896 seconds
Number of clients running queries: 600
Average number of queries per client: 1666

基本上可以看出,在8C的配置下,mysql 5.6和5.7的性能已经比较接近的,按说配置再增加的情况下,5.7的扩展性会比5.6更好,且新增的很多额外线程的消耗会被抵销。

mysql 5.7.15 vs mysql 5.6.31性能测试以及不同linux内核性能比较的更多相关文章

  1. [MySQL Reference Manual]15. 其他存储引擎

    15. 其他存储引擎 15. 其他存储引擎 15.1 设置存储引擎 15.2 MyISAM存储引擎 15.2.1 MyISAM启动选项 15.2.2 Key的空间要求 15.2.3 MyISAM表存储 ...

  2. PowerDesigner 15设置mysql主键自动增长及基数

    PowerDesigner 15设置mysql主键自动增长及基数 1.双击标示图,打开table properties->columns,  如图点击图标Customize Columns an ...

  3. mysql 5.7.15单机主从快速搭建并配置复制表到不同库

    一直以来因为线上系统盘中风控计算过于消耗资源,导致服务器负载太高,时常影响盘中交易的稳定性,最近决定了将风控拆分到独立的库进行计算,并进行回填操作. 总体来说,是将部分风控计算相关的表同步到备库,但是 ...

  4. Delphi 7连接MySql 5.5.15

    原文:http://blog.csdn.net/akof1314/article/details/6822902/ 网上有很多关于Delphi连接MySql数据库的文章,在这里,我只记录下自己测试过的 ...

  5. Centos 6.4上面用Shell脚本一键安装mysql 5.6.15

    Centos 6.4上面用Shell脚本一键安装mysql 5.6.15  #!/bin/bash if [ `uname -m` == "x86_64" ];then machi ...

  6. LNMP搭建(CentOS 6.3+Nginx 1.2.0+PHP 5.3.15(fpm)+ MySQL 5.5.35)

    Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 ...

  7. mysql查超过15分钟未付款的订单,更新为失效状态

    个人打开自己的订单时,才检查超过15分钟未付款的订单, 暂不使用机器人,更新状态, Difference counter 差分计数器订单超过15分钟.mysql的时间戳差分比较 $sql =  TIM ...

  8. Delphi 7连接MySql 5.5.15(转)

    网上有很多关于Delphi连接MySql数据库的文章,在这里,我只记录下自己测试过的方法,以备所需.系统环境:Windows XP SP3软件环境:Delphi 7 .mysql-installer- ...

  9. (3.15)mysql基础深入——mysql默认数据库/系统数据库

    (3.15)mysql基础深入——mysql默认数据库 关键词:Mysql默认数据库,mysql系统数据库 系统数据库的组成 一共4个 [1]information_schema(可以理解成字典表) ...

随机推荐

  1. Struts2学习笔记 - Action篇<配置文件中使用通配符>

    有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这里就说一下在配置文件中使用通配符,这里的关键就是struts.xml配置文件,在最简单的 ...

  2. Winform实现Shp-栅格图形文件的读取与显示(外加shp转WKB格式存入oracle)附源码

    前言:上学期GIS空间数据库课程设计时,老师让实现Shp-栅格图形文件的读取与显示,外加shp转WKB格式存入oracle,不使用第三方类库,花了一天时间在网上找了一些资料,实现了一个简单的栅格图形文 ...

  3. WPF/Silverlight 下的图片局部放大

    最近的项目中也要用到一个局部图片放大的功能,园子里面一搜,发现(菩提下的杨过)杨大侠已经实现了. 请参见这里:http://www.cnblogs.com/yjmyzz/archive/2009/12 ...

  4. 设置让TortoiseGit记住账号和密码

    方法一:在"C:\Documents and Settings\Administrator\.gitconfig" 文件 或 "项目/.git/config"文 ...

  5. 邻接表有向图(一)之 C语言详解

    本章介绍邻接表有向图.在"图的理论基础"中已经对图进行了理论介绍,这里就不再对图的概念进行重复说明了.和以往一样,本文会先给出C语言的实现:后续再分别给出C++和Java版本的实现 ...

  6. static 关键字

    static对象如果出现在类中,那么该对象即使从未被使用到,它也会被构造以及析构.而函数中的static对象,如果该函数从未被调用,这个对象也就绝不会诞生,但是在函数每次被调用时检查对象是否需要诞生. ...

  7. Tomcat7.0启动报错:java.lang.illegalargumentexception:taglib definition not consisten with specification version

    Tomcat7.0启动报错:java.lang.illegalargumentexception:taglib definition not consisten with specification ...

  8. Nutch源码阅读进程2---Generate

    继之前仓促走完nutch的第一个流程Inject后,再次起航,Debug模式走起,进入第二个预热阶段Generate~~~   上期回顾:Inject主要是将爬取列表中的url转换为指定格式<T ...

  9. nodejs 生产环境配置

    1.node 默认为development(开发)模式 启动node 时可以设置模式为生产模式 set NODE_ENV=production node app.js 2.设置node监听的端口 va ...

  10. Dagger2 生成代码学习

    接上一篇文章介绍了Dagger2的初步使用,相信刚接触的人会觉得很奇怪,怎么会有很多自己没有定义的代码出现,为什么Component的创建方式是那样的.为了搞清楚这些东西,我们需要查看一下Dagger ...