MySQL如何支撑每秒百万QPS?

91de1bcf5079dd58a6576ce540f5d30f.gif

【编者按】本文主要介绍 PlanetScale 是如何通过 MySQL 的水平分片支撑每秒一百万个查询(QPS)的。

原文链接:https://planetscale.com/media/one-million-queries-per-second-with-mysql

未经允许,禁止转载!

作者 | Jonah Berquist      译者 | 明明如月

责编 | 夏萌

出品 | CSDN(ID:CSDNnews)

本文主要介绍 PlanetScale 是如何通过 MySQL 的水平分片支撑每秒一百万个查询(QPS)的。

369ccfd8079b0c18f236a41f0cc9d0fd.png

如果你使用的数据库拥有良好的扩展性,用起来会更省心。我们推出了基于 Vitess 的 PlanetScale,旨在最大程度上利用其出色的可扩展性。水平分片是他们在扩展性方面的一个重要优势。为了展示水平分片的实力,我们决定做一些基准测试。

我们设定了一个 PlanetScale 数据库,开始运行一些常见的 sysbench-tpcc 工作负载的基准测试。我们此次的目标并不是追求严格的学术基准,而是想使用一个广泛知晓且实际的工作负载进行测试。在将来,我们会发布更多基准测试的文章,并且我们已经开始和一家学术机构合作,他们不久后将公布自己的研究成果。

这篇文章的目标有两个:一是展示 PlanetScale 处理大规模查询的能力。为此,我们设定了每秒处理一百万次查询的目标。从 Vitess 的视角来看,这并不是个大集群。虽然有许多 Vitess 集群的查询量更大,但我们认为这是个合理的基准。二是通过水平扩展来展示可预见的扩展性。提高吞吐量的能力就像添加更多机器一样简单。

484228e3bc6c127cfc14736ba6b92ba5.png

增加分片数量实现拓展

我们的初始数据库并未进行分片,随后我们设定了一个虚拟模式并开始分片操作。我们倾向于选择 2 的幂作为初始的分片数量,因此我们选择了从两个分片开始,并在接下来的操作中逐步翻倍分片数量。在每个分片级别,我们都会运行若干次 sysbench,每次运行时的线程数量也会逐渐增加。在每一轮的迭代过程中,我们观察到一个现象:超过一定程度后,线程数量的增加不再引导吞吐量的增长,反而当吞吐量达到上限后,查询的延迟会有所提升。

在下图,你能看到的是对一个含有 16 个分片的数据库进行操作的结果。你可以看到,随着 sysbench 线程数量的增加,连接数量也同步上升。同时,随着线程数量的提升,每秒的查询吞吐量也相应增长。cf51622ebdeb4f7815fcfbd41fe01776.png

2484a8838134c6509a8e704bf3d592b0.png


f605dfc8e9ec13b4709e25b5a7db23a7.png

达到极限

然而,当每个分片所占用的资源逐渐达到其容量上限时,我们开始观察到系统的性能提升效果逐渐减弱。这一点在比较 1024 线程与 2048 线程间以及 2048 线程与 4096 线程间的 QPS 增长时尤为突出。同样,在下面展示的 vtgate 指标中,当我们的吞吐量接近峰值时,我们观察到查询的延迟开始升高 ,尤其是在 p99 延迟中尤为明显。

0ca7d5fb729c2e4bee1600cc1ba87e8a.png

82cd901f02fb273000fb586754e84fb2.png

到了这一步,我们就知道是时候要增加更多的分片进一步提高吞吐量了。

d8ce482353eaeeaba581a39d3b5b8600.png

增加更多分片

在下面数据中,你可以看到,随着我们翻倍增加分片数量,每秒的查询数量也大体上成倍增长。当我们拥有 16 个分片时,我们的最大 QPS 约为 42万。而当我们增加到 32 个分片时,我们达到了 84 万QPS。尽管我们有能力无限地增加分片数量,但我们设定了一个目标,那就是实现每秒一百万次查询的能力。

2a2e5ffee9bbba720611b0c8783bf024.png

4befccb166df7f33def77ba25cb3fc48.png

实现每秒一百万次查询

需要强调的是,虽然我们更偏向选择 2 的幂作为分片数量,但这并非硬性规定,我们完全可以采用其他数量的分片。考虑到我们在拥有 32 个分片时,QPS 刚好超过 80万,我们推算出,大约 40 个分片应该能满足我们 100万QPS 的需求。当我们启动该数据库并使用并行的 sysbench 客户端对其进行测试时,结果如我们所期待一样:在运行 5 分钟的时间内,每秒查询量超过了一百万次。

f6f7770dcbd1de716fc3ac36d4a6c70e.png

我们在一个单租户环境下进行了这项基准测试,基准测试中使用的资源级别是针对企业级客户准备的。为了适应这个 sysbench 工作负载,我们还进行了一些非标准的配置调整,包括调高一些查询和事务的超时设置。

推荐阅读:

▶53岁周鸿祎考上清华博士;图灵奖得主杨立昆炮轰ChatGPT:五年内就没人用了;Red Hat恪守对开源的承诺|极客头条

▶估值超 80 亿独角兽爆雷!靠“吹牛”骗取 10 亿融资,2000 万月活中 95% 是“机器人”

▶上云一年烧掉320万美元,Ruby on Rails 之父:“下云”成功,五年能省700万美元!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/56398.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用银联借记卡通过paypal支付美金

起了一个非常拗口的标题,意思是我要用关联了国内银联借记卡的paypal账户给国外网站支付费用,我直接在线就可以实现支付,不需要充值(paypal实际上是有充值付费这个流程的,只是我们没有感觉到)等一系列操作,也是非常的方…

B2B电商平台--ChinaPay银联电子支付功能

一、概念简介 理解什么是UnionPay、ChinaPay 这两个概念如果搞不清楚,绝对够你瞎折腾一段时间的。讲真,拿到这个改换ChinaPay银联支付需求时,我还以为产品经理给错我们官网地址了。 1、UnionPay 中国银联,最大的机构&#xff…

线上支付之----网关支付、银联代扣通道、快捷支付、银行卡支付等网上常见支付方式接口说明!!

一、网关支付这是在线支付的最普遍形式。大致支付过程:第三方支付公司作为代理(网关),接入一堆银行。用户在网关页面(可以在商户端,也可以第三方支付平台端)选择银行,页面跳转到第三…

支付宝和银联 充值和支付流程(后台)

最近做了支付,现在把后台支付的流程记录下来,方便以后查找。 这里面充值是用的支付宝,而支付是银联和支付宝都用到了,只记录业务逻辑。支付的时候,由于系统本身是有自己的账户体系的,所以有可能会设计一半余…

大模型工具学习权威综述,BMTools 背后的论文!

近期,来自清华大学、中国人民大学、北京邮电大学、UIUC、NYU、CMU等高校的研究人员联合 OpenBMB开源社区、知乎、面壁智能公司探索了基础模型调用外部工具的课题,联合发表了一篇74页的 基础模型工具学习 综述论文,并发布了 开源工具学习平台。…

5. 《认知觉醒》

概述 本篇文章是认知觉醒的读书笔记. 书中的精彩瞬间 所谓心智,通俗地说,就是我们看待人和事的态度,以及由此做出的判断与选择人与人之间的根本差异是认知能力上的差异,因为认知影响选择,而选择改变命运,所…

chatgpt赋能python:Python和.mat文件:什么是.mat文件,如何使用Python操作.mat文件?

Python 和 .mat 文件:什么是 .mat 文件,如何使用 Python 操作 .mat 文件? 如果您是一个数据分析师或数据科学家,那么您应该经常处理各种类型的数据文件。在这些文件中之一就是 MATLAB 的 .mat 文件。.mat 文件是一种可以方便地存…

吐槽一下程序员职场那些令人迷惑的行为

鲁迅先生曾经说过:“科技大佬们的“毒鸡汤”,别喝!喝了你一定会后悔,他们说什么也别相信!那些所谓的情怀,没有任何意义! 今天讲讲在互联网这个行业中那些让人迷惑的行为,纯个人吐槽&…

【程序员段子】10个让你笑爆肚皮的程序员段子,不好笑算我输(生活太苦,不如经常来点儿甜~)

前言 今天是你们周末休息后的第一天早上,开始打鸡血上班了吧。 没事多看看幽默笑话,释放一下这一周来的压力,并准备好今天的战斗!么么哒~ ~ 程序员——世人笑我太疯癫, 我笑他人看不穿 正文 1)面试 …

粥左罗教你从零开始学写作笔记系列

​​​​​​​目录 一 写作认知:多数人理解错了写作 第01讲:写作能力是人人需要的底层能力 第02讲:写作能力的三个核心是什么? 第03讲:如何迈出写作的第一步? 第04讲:如何坚持,长期写下去…

【小红书排名规则】社区规则、账号权重、笔记权重和推荐规则

小红书社区规则 重新上架以来,小红书的审核也更加严格了,所以今天来帮大家梳理一下小红书社区的规则。先说三个机制,分别是公平机制、监测机制和检测机制。 01 公平机制   因为现在的小红书笔记生产量太多了,一秒时间同类话题可…

小红书热词速看 | 古茗有何营销动作?

【导语】 据古茗官方数据,新系列推出当日即售空,单店最高出杯420杯,最快24小时内卖断货;上架3天,销量突破100万杯;10天,就售出了343万杯,其中2款牛油果奶昔用掉了40万斤牛油果&…

小红书标题文案套路90%博主都在用,一看就会

最近看了一篇很有意思的文章,很有意思,大概就是小红书博主的一些流量密码,看完之后,我去小红书一对比,还真的是这样的! 并且除了文章提到一些标题流量密码,我还发现了一些别的“流量词”&#…

获取最新、最全的小红书地理位置签到数据。

小红书签到数据是什么? 一般情况下,小红书签到数据是带有经纬度坐标系的。小红书用户在签到时,可以选择授权小红书获取其位置信息,并将该经纬度信息保存到签到记录中。这样,其他用户就可以在地图上看到该用户的签到位置…

小红书起号分析流程

一、明确账号定位 在小红书里做账号,定位先行,请明确账号定位!你需要明确地让潜在粉丝和小红书用户知道:你是谁、你能提供什么、你有什么独特的地方? 比如博主一只小鱼瓶账号分析:从主页笔记内容和标注&…

哪些ipad的APP可以很好的阅读英文文献?

用ipad做实验阅读文献做阅读笔记?!ipad还有多少隐藏功能是你想象不到的?别急,让我带你开启ipad的隐藏玩法:由于科研学习的需要,很多科研人有阅读复杂冗长的英文文献需求。而笔记本电脑和鼠标的使用难免会受…

论文阅读|ERNIE-SAT: SPEECH AND TEXT JOINT PRETRAININGFOR CROSS-LINGUAL MULTI-SPEAKER TEXT-TO-SPEECH

原文链接:https://arxiv.org/pdf/2211.03545v1.pdf 代码链接:https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/examples/aishell3_vctk/ernie_sat 一、摘要 & 引言 1. 语音表示学习方法(Speech Representation Learning&am…

文献阅读:Training language models to follow instructions with human feedback

文献阅读:Training language models to follow instructions with human feedback 1. 文献工作简介2. 模型优化设计3. 实验结果4. 总结 & 思考 文献链接:https://arxiv.org/abs/2203.02155 1. 文献工作简介 这篇文章是OpenAI在上年提出的一篇对于…

[工具分享] 如何快速的添加海外客户的whatsApp和line进入通讯录

很多做外贸的朋友经常需要和海外的朋友联系,我们经常有时候需要添加海外客户的whatsApp和line等海外社交软件更好的与客户沟通,其他的App呢也是类似的,一下分享的方法 第一步、首先下载软件: 腾讯网盘:https://share.weiyun.com…

高等数学(第七版)同济大学 习题8-5 个人解答

高等数学(第七版)同济大学 习题8-5 函数作图软件:Mathematica 1. 一球面过原点及 A ( 4 , 0 , 0 ) 、 B ( 1 , 3 , 0 ) 和 C ( 0 , 0 , − 4 ) 三点,求球面的方程及球心的坐标和半径 . \begin{aligned}&1. \ 一球面过原点及A…