百万级高并发mongodb集群性能数十倍提升优化实践(下篇)

      百万级高并发mongodb集群性能数十倍提升优化实践(下篇)

关于作者

前滴滴出行技术专家,现任OPPO文档数据库mongodb负责人,负责oppo千万级峰值TPS/十万亿级数据量文档数据库mongodb研发和运维工作,一直专注于分布式缓存、高性能服务端、数据库、中间件等相关研发。后续持续分享《MongoDB内核源码设计、性能优化、最佳运维实践》,Github账号地址:https://github.com/y123456yz

 

  1. 前言

    温馨提示:在进行本下篇优化文章阅读前,可以提前了解下《百万级高并发mongodb集群性能数十倍提升优化实践(上篇)》的问题背景及优化方法,这样可以更好的了解和学习本篇性能优化下篇的内容。

  1. 背景

线上某集群峰值TPS超过100万/秒左右(主要为写流量,读流量很低,读写流量做了主从读写分离,读流量走从节点,qps数百上千),峰值tps几乎已经到达集群上限,同时平均时延也超过100ms,随着读写流量的进一步增加,时延抖动严重影响业务可用性。该集群采用mongodb天然的分片模式架构,数据均衡的分布于各个分片中,添加片键启用分片功能后实现完美的负载均衡。集群每个节点流量监控如下图所示:

        从上图可以看出集群流量比较大,峰值已经突破120万/秒,其中delete过期删除的流量不算在总流量里面(delete由主触发删除,但是主上面不会显示,只会在从节点拉取oplog的时候显示)。如果算上主节点的delete流量,总tps超过150万/秒。

       在《百万级高并发mongodb集群性能数十倍提升优化实践(上篇)》中,我们通过业务优化、mongodb服务层配置优化、wiredtiger存储引擎层优化及硬件IO优化后,客户端总体时延从几百ms迟控制到了2-5ms左右,总体性能有了很大的提升,但是当有超大流量写冲击的时候,会有几十ms时延抖动,几个不同接口的时延如下图所示:

3. 硬件问题回顾及遗留问题

        在《上篇》文章中,我们通过定位nvme ssd硬件的IO问题后,和厂商一起分析后发现IO问题是因为操作系统版本不对引起,于是开始对线上的主从mongod实例的服务器硬件进行升级,升级后开始替换线上该集群的实例。具体操作过程如下:

  1. 为了验证IO升级后的机器,我们替换一个分片的从节点为升级后的服务器(IO问题得以解决,IO能力从之前的500M/s写入达到了近2G/s
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值