热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

MySQL性能:在MySQL5.7中使用InnoDBMemcached插件实现每秒100_MySQL

memcache在上周,Tomas在MySQLPerconaLiveConferenceinLondon,宣布了MySQL5.7的版本--在只读的(Read-Only)测试环境,InnoDB的Memcachedplugin的版本中,可以处理每秒1,000,000次的查询。这个文章就是证实这个说法的。实际上,我至今也没有准确说法,到底可
memcache

  在上周, Tomas 在 MySQL Percona Live Conference in London ,宣布了MySQL 5.7的版本--在只读的(Read-Only)测试环境,InnoDB 的 Memcached plugin的版本中,可以处理 每秒 1,000,000 次的查询。这个文章就是证实这个说法的。

  实际上,我至今也没有准确说法,到底可拓展性有多么的准确和有多少的性能限制在这里面..我们可以在最新的MySQL 5.7 中可以得到最大的性能提升,并且,并且可以让我们轻松的在“普通的”(normal)SQL 在只读的环境中(Read-Only workload) 测试到 500K QPS 。接下来,更多的性能提升在InnoDB Memcached Plugin代码中变为可能,然而,一切都是那么自然。尤其在Facebook团队,他们突破并展现出巨大的性能点。当然,Facebook给我们提供了一个测试case,我们也用它来成功的提高了我们代码。最终,同样的测试案例会在下面的测试评分结果中展示出来;-)

  这个测试是在”独立“(standalone)模式上测试的。(包括服务器,客户端都在上面运行)。所以,我们使用我们实验室最大的HW box - 一个48核的机器。这个服务器能够迅速的给我们指出一个存在的,或者潜在的性能瓶颈(最有趣的是,大部分他们都是在memcached代码上面)。然而,QPS 依赖于内存和CPU。因此,这台服务器是只有2Ghz的CPU 核,如果有存在其他更快的HW,你可能能得到更好的积分统计 :-)

  现在,比较 最好-最好 的QPS结果如下:

  我曾经把MySQL5.6放上神坛,给它打上“有史以来最好的结果”这样的标签;-))——由于一部分的Memcached代码性能提高也会反过来提升MySQL5.6的性能,所以我们也期望在5.6的下一版本中也能运行的良好。实际上,只需要MySQL5.7,你就可以达到一个很高的水平……

  在我在伦敦的Percona现场讨论会上,我曾经展示过下面这些图表——Memcached QPS是符合InnoDB的“dml_read/sec”的状态:

  这些图表代表着在“上一版”MySQL上所做的4个Memcached负载测试:

  • #1运行在48核的机器上……——我们遇到了与MVCC相关的服务器冲突(在最新版的MySQL5.7中已经修复了)
  • #2限制MySQL服务运行在16核的机器上,以降低这个冲突……——然后,我们遇到了事务冲突(这也在最新版的MySQL5.7中修复了)
  • #3调整Memcached plugin,在一个独立的事务内部保持一些读操作——神啊,救救我吧,我又遇到了一些其他的冲突……
  • #4限制MySQL服务运行在8核的机器上,看是否会降低冲突——事实表明,最大QPS有所提高(在32个用户的情况下),但是整体性能却更糟了……

  相反的,在最新版的MySQL5.7中,情况确实完全不同:

  这些图所表示的是两个测试:

  • #1-运行在48核的机器上(不做太多评论;-))
  • #2-调整了一些参数,在一个独立的内部事务中保持一些读取的操作,结果只有在QPS的峰值上稍微好点,其他方面没有什么区别。

  接下来为了更好的感受到QPS的差距,我们将这些测试结果放在一个图表中:

  你可以更形象的看到这两者的不同。

  • 图表的左半部分曲线代表的QPS水平都是在“旧版”的MySQL5.6/5.7上得到的。
  • 然后右半部分的曲线是在最新版的MySQL5.7上得到的。

  这项工作仍在进展中,关于在这个最新的MySQL 5.7版本中我们实现的巨大进步,我会让Sunny 和 Jimmy给你们提供其中所有深入的细节。

  我不知道这里的性能极限在于哪里。可能只存在于HW(HardWare)层面。我也不知道是否有足够庞大的HW来观察它;-)——现在经由一个单独的1Gbit网络链接,我们已经观察到超过700K QPS的性能了,当这个来自于单独网络链路的极限峰值到达时,主要的麻烦却来自于客户端处理程序,而不是服务器——所以,看上去相比较“原始的”Memcached本身来说,Memcached @InnoDB具有更好的伸缩性;-)——那么,当有几个网络链接启用(或者仅仅只是使用更快速的网卡)的时候可能会有什么样的性能呢——还有许多东西需要去探索发掘的!而且RW(ReadWrite)工作负载性能也是另一项挑战;-)

  感谢Sunny和Jimmy!还要特殊感谢yoshinori(Facebook)!-我认为这是一个很典型的例子!

  想要了解更多关于Memecached Plugin 的设计-你可以follow this link : https://blogs.oracle.com/MySQL/entry/nosql_memcached_api_for_mysql 。-然后,你把结果都印在心里面,我现在让你现在想象一下”如果是数据是直接通过“本地”(native)InnoDB API 访问的,然后通过Memcached 层面传输的“,你所期待是哪种性能?

  Rgds,
  -Dimitri

  原文地址:http://dimitrik.free.fr/blog/archives/11-01-2013_11-30-2013.html#2013-11-22

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 电信网为不能访问联通服务器的网站_老板说网站慢,我们总结了三大阶段提升性能...
    作者:李平来源:https:www.cnblogs.comleefreemanp3998757.html前言在前一篇随笔《大型网站系统架构的演化》中&# ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了python面试题——数据库和缓存(46题)相关的知识,希望对你有一定的参考价值。1、列举常见的关系型数据库和非关系型都有那些? ... [详细]
  • 在Ubuntu中安装MongoDB
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 架构师必读:日均500万数据,如何进行数据存储选型?
    点击上方关注我,选择“置顶或者星标”作者:麦田里的老农来源:https:zhuanlan.zhihu.comp37964096小编公司有一 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文讲述了孙悟空写给白骨精的信件引发的思考和反省。孙悟空在信中对自己的行为进行了反思,认识到自己胡闹的行为并没有给他带来实际的收获。他也揭示了西天取经的真相,认为这是玉皇、菩萨设下的一场陷阱。他还提到了师傅的虚伪和对自己的实心话,以及自己作为师傅准备提拔的对象而被派下来锻炼的经历。他认为路上的九九八十一难也都是菩萨算计好的,唐僧并没有真正的危险。最后,他提到了观音菩萨在关键时刻的指导。这封信件引发了孙悟空对自己行为的思考和反省,对西天取经的目的和自己的角色有了更深入的认识。 ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • 作者表示自己最近工作非常忙碌,无法抽出时间写作。他计划在未来的几天内写关于namespace与C#的名字解析以及数据库内容转化为excel文件下载的知识。 ... [详细]
  • GSIOpenSSH PAM_USER 安全绕过漏洞
    漏洞名称:GSI-OpenSSHPAM_USER安全绕过漏洞CNNVD编号:CNNVD-201304-097发布时间:2013-04-09 ... [详细]
  • ASP.NET MVC 小牛之旅3:Routing——网址路由
    网址路由(Routing)在ASP.NETMVC中有两个主要用途,一个用途是匹配通过浏览器传来的HTTP请求,另一个用途则是响应适当的网址给浏览器。3.1匹配通过浏览器传来的HTT ... [详细]
  • 模式是一条由三部分组成的规则,它表示了一个特定环境、一个问题和一个解决方案之间的关系。模式由三部分组成:语境:问题出现的场景。问题 ... [详细]
  • Oracle中存储过程和函数的区别
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
author-avatar
哥晕死_476
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有