数据库集群查询达到10w/s,更新操作5k/s,正常!
应用并发连接达到历史高峰4倍,正常!
业务平稳运行,正常!
永辉微店527大促,圆满成功!这标志着平民软件数据库工程师、accenture咨询实施专家、SAP支持人员、永辉研发及其他工作人员连续数月的调优工作,让永辉微店的系统容量提升到了一个新的高度。
永辉微店是典型的O2O电商,其商品都是来自永辉超市的门店,而且生鲜类商品的价格随着门店不同、日期不同、优惠力度不同而每隔几个小时就会发生变化。因此单笔订单的复杂程度要超过一般传统电商。
527大促前期,根据多方人员评估,系统容量无法满足促销当天需求,其中一个核心瓶颈就是数据库无法承担应用系统的高并发压力。此时永辉超市通过天玑科技(杭州平民软件的母公司)邀请我们帮助解决数据层问题。
平民软件拥有业界一流的数据库专家,其在数据层的调优实践非常丰富。数据层的调优包括但不限于以下几个部分
1、参数调优
2、SQL优化
3、硬件资源(CPU、内存、磁盘、网络)性能瓶颈定位
4、应用层与数据层交互的合理性诊断
在确认和解决了上述四个方面的问题之后,
首先,使用官方版本的MySQL5.6,发现系统的CPU一直在百分之百,其中内核态占了80%以上的CPU。考虑到系统的并发性高,过多的连接,会导致MySQL创建过多线程,进而导致数据库系统所在操作系统,频繁发生上下文切换,导致系统性能较低。
其次,我们测试了带线程池功能的Percona5.6。经测试,验证可以通过设置线程的数量,来降低CPU的利用率,但是相应的TPS也大幅降低。提高线程的数量,就会和MySQL5.6官方版本的效果一样,CPU占有率接近100%。
最后,通过详细分析了在大并发情况下,数据库系统性能下降的问题,我们决定测试平民软件的产品OneSQL。测试之后,效果完全满足客户的预期,所以才有了文章一开头提到的527大促成功。
为什么OneSQL在大并发的电商系统中,能有如此优异的表现?希望下面的介绍能让你明白他的工作原理。
OneSQL源起于电商,是目前最优秀的为电商平台打造的MySQL数据库分支。OneSQL独家的多队列线程池护航你的电商业务,让你的业务系统能力提升几倍甚至10倍。
为什么多队列线程池能够有这样的效果?今天我试着以通俗的方式向大家解释。我们把数据库比作是四车道高速公路。数据库上的负载比作是各种车辆
1、大卡车跑的慢,对应于数据库中的大表统计查询、关联查询
2、小轿车跑的快,对应于数据库中的自动提交事务
3、大客车速度介于大卡车和小轿车之间,对应于数据库中的显式事务
4、摩托车速度最快,对应于数据库中的简单查询
在电商系统中线上业务通常由小轿车、大客车和摩托车对应的查询组成,一些后台统计类业务通常是大卡车对应的查询。为了高速路的顺畅,防止大卡车占据所有车道,影响其他类型的车辆运行,必须将不同类型的车安放在不同的车道。
OneSQL借鉴了相同的思路,把不同类型的SQL放入到不同的队列中,有效保证了页面访问、交易创建、库存处理等环节都能按照最佳比例执行,减少相互干扰,使数据库系统的性能在电商环境下,甚至有10倍以上的提升。
OneSQL作为高性能的MySQL分支版本,也保证了对官方版本的绝对兼容。用户可以在秒级之间自由切换官方版本和平民软件的版本。如果想在已有的系统中体验OneSQL,无需进行数据迁移,只要在平民软件官方网站中找到对应的版本(目前支持5.6),使用OneSQL的二进制文件mysqld替换官方版本的mysqld即可。如果想要回退到官方版本,也只需进行二进制文件替换。
另外OneSQL在秒杀、日志异步刷新、主从同步速度提升方面均有优化,如有兴趣请访问www.onexsoft.com
如有任何疑问,请联系onesoft007