专栏名称: 运维帮
互联网技术分享平台,分享的力量。帮主一直坚信技术可以改变世界,从毕业到现在干了15年运维,有许多话要和你说。
目录
相关文章推荐
51好读  ›  专栏  ›  运维帮

永不停止的脚步——阿里巴巴数据库优化之路

运维帮  · 公众号  · 运维  · 2017-01-11 06:56

正文

请到「今天看啥」查看全文


当2015年双11来临时,交易的秒级查询量再次达到一个峰值,这一切都在掌握之中。PK_Access优化方案让交易库的查询能力提升了27%,RT下降48%。


光鲜数据的背后,不只是一个数据库优化方案的结果,更多的是交易业务系统一堆人花了大量的时间梳理接口并确定流控阈值的结果。这里有这么一个数据,2015年交易系统的对外限流预案一共有125个。回想起交易同学的一句话,“如果明年还需要这样,我肯定疯了”。业务同学的话让我们反思,系统能力的提升不能建立在业务缺失的基础上。


再次回到pk_access的方案,交易的查询在目前的条件下,已经做到了最优,server层的sql_parse是瓶颈点,但是在sql的方式下,没有办法提高更多了。那么能不能将sql_parse也省掉呢?这个时候我们想到了被人遗忘的MySQL插件,InnoDB memcached plugin。



由于插件本身的使用场景偏少,且自身的功能缺失,一直并未广泛使用。换句话说,这是一块未被开发的沃土。从原理上证明这是一个有效方案之后,数据库团队马上集中精力,说干就干。最终修复bug 15个,新功能开发6个,才满足了交易的基本查询。测试中发现,在完整交易场景下,memcached plugin和SQL的对比结果来看,memcached plugin qps可以达到42万,SQL才能达到12万,qps提升了接近4倍。在单SQL场景下,交易单条查询接口的rt下降约30%。在相同流量的引流测试中,通过memcached plugin查询,应用load 4.8,cpu 45%;通过sql查询,应用load13,cpu 72%。通过各个维度的比较,memcachedplugin带来的收益远远超出每个人的预期。


就在刚刚落幕的2016年双11,交易系统秒级查询量突破千万,再次刷新秒级查询量,也是数据库团队第一个秒级破千万的系统。这一次的增长可谓是“爆炸式”的。


从今年交易数据库运行情况来看:

  • 数据库不扩容,整体压力翻翻,并且仍有一定的余量。

  • 业务降级预案大幅减少,做到对业务无损。

  • 交易应用服务器扩容大幅减少。业务访问数据库从SQL接口切


Memcached接口之后,还带来的一个显著优化就是应用服务器的CPU开销大幅降低,这也导致最终需要扩容的应用服务器数量大幅减少。

3、库存中心扣减能力提升

热点库存,相信无论是有多年双11备战经验的技术同学,还是资深的剁手党,对这个名词都不会感到陌生。因为每年双11,总有那么些爆款商品特别热销,大家的抢购热情异常高涨,这几年双11,小米/华为手机、优衣库衣服等,都曾经加入过这个热点商品的家族之中。其实,热点商品是一直存在的,但是热点商品带来的问题,我们是2012年底2013年初才真正意识到的。


从那时起,2013、2014、2015、2016,每一年我们在AliSQL内核层面针对此问题都有优化,优化单Key(单商品)的秒级扣减能力。但是,只有今年,我们将此问题做到了技术上的极致,未来可以预见的几年内,库存热点问题,将从双11备战中消失。


2013年,2014年和2015年,库存中心随着AliSQL版本升级和硬件升级,轻轻松松渡过了双11的技术大考,AliSQL的单行扣减能力,从原生MySQL的每秒500笔,提升到了2015年的每秒5000笔。







请到「今天看啥」查看全文