本文是“我和MongoDB的故事”MongoDB征文比赛的一等奖文章,杨亚洲也到2019年MongoDB中文社区年终盛会进行了现场分享。接下来我们一起来欣赏下完整版内容。

1 背景

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

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

2 软件优化

在不增加服务器资源的情况下,首先做了如下软件层面的优化,并取得了理想的数倍性能提升:

业务层面优化

Mongodb配置优化

存储引擎优化

2.1 业务层面优化

该集群总文档近百亿条,每条文档记录默认保存三天,业务随机散列数据到三天后任意时间点随机过期淘汰。由于文档数目很多,白天平峰监控可以发现从节点经常有大量delete操作,甚至部分时间点delete删除操作数已经超过了业务方读写流量࿰

mongodb每秒写入量_OPPO百万级高并发MongoDB集群性能数十倍提升优化实践相关推荐

  1. OPPO百万级高并发MongoDB集群性能数十倍提升优化实践

    点击蓝色"架构文摘"关注我哟 加个"星标",每天上午 09:25,干货推送! 1. 背景 线上某集群峰值TPS超过100万/秒左右(主要为写流量,读流量很低), ...

  2. 9基于linux百万级高并发框架Skynet-王桂林-专题视频课程

    <9>基于linux百万级高并发框架Skynet-830人已学习 课程介绍         全面介绍一款专门为游戏服务所打造的后台框架skynet,Actor模型的剖析与搭建,通用服务模块 ...

  3. kafka是如何做到百万级高并发低迟延的?

    Kafka是高吞吐低延迟的高并发.高性能的消息中间件,在大数据领域有极为广泛的运用.配置良好的Kafka集群甚至可以做到每秒几十万.上百万的超高并发写入.Kafka到底是如何做到这么高的吞吐量和性能的 ...

  4. 你们说说kafka是如何做到百万级高并发低迟延的?

    Kafka是高吞吐低延迟的高并发.高性能的消息中间件,在大数据领域有极为广泛的运用.配置良好的Kafka集群甚至可以做到每秒几十万.上百万的超高并发写入.Kafka到底是如何做到这么高的吞吐量和性能的 ...

  5. mongodb每秒写入量_Mongodb亿级数据量的性能测试

    进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目: (所有插入都是单线程进行,所有读取都是多线程进行) 1) 普通插入性能 (插入的数据每条大约在1KB左右) 2) 批量插入性能 ( ...

  6. 刘志勇:微博短视频百万级高并发架构

    本文来自新浪微博视频平台资深架构师刘志勇在LiveVideoStackCon 2018讲师热身分享,并由LiveVideoStack整理而成.分享中刘志勇从设计及服务可用性方面,详细解析了微博短视频高 ...

  7. 【揭秘】12306是如何抗住几亿日活、百万级高并发的?

    [欢迎关注微信公众号:厦门微思网络] 微思网络(官网):https://www.xmws.cn/ 每到节假日期间,一二线城市返乡.外出游玩的人们几乎都面临着一个问题:抢火车票! 虽然现在大多数情况下都 ...

  8. MySQL百万级高并发网站优化

    为什么80%的码农都做不了架构师?>>>    一网站以下简称A站,这A站在年后流量猛增从一天的七八十万猛跑到了好几百万的IP,一天下来接近一千万的PV让整个服务器在高压下超负荷的工 ...

  9. 百万用户的网站访问云服务器,大型网站百万级高并发测试–MySpace云测试CloudTest™...

    2009年12月MySpace在新西兰对用户推出了音乐和视频的服务功能,这些新功能包括能够观看音乐录像,艺术家的视频搜索,创建收藏夹列表,等等.因为MySpace网站在任何国家每日的访问量是巨大的,这 ...

最新文章

  1. 面试官:高并发下,如何保证分布式唯一全局 ID 生成?
  2. 12JavaScript中的内置对象
  3. gtp怎么安装系统_UEFI+GTP模式下使用GHO文件安装WIN7或WIN8系统图文教程详解
  4. 14 款免费漂亮的 BuddyPress 主题
  5. 中点坐标公式 矩形_压轴题必备|中考数学“动点坐标”问题,这个万能解法人人都能学会!...
  6. python导入pyecharts错误没有pyecharts_python报No module named 'pyecharts'的错误怎么办?
  7. safari无法调试iphone提示“无可检查的应用程序”的解决方法
  8. explanatory variable(independent vs dependent)、design matrix
  9. 字符和字符串在Java中的旅程
  10. 【代码笔记】iOS-底下滚动,上面标题栏也会跟着变动
  11. et中计算机的快捷键,ET制版快捷键
  12. 经济学原理——微观经济学
  13. Eclipse输入或创建txt文件位置
  14. 全球区块链专利排行榜中国52家企业上榜
  15. LimeSDR 中文教程 (一)
  16. php关闭notice_php的notice怎么关闭
  17. 创造与魔法怎么自建服务器,创造与魔法自建服攻略大全_创造与魔法自建服建造方法、福利_玩游戏网...
  18. 第五章 事务控制语言(Transaction Control Language,TCL)
  19. 微软打字/拼音不出现汉字
  20. R语言:无法精确计算带连结的p值

热门文章

  1. C语言-链表-添加到链表尾部
  2. 全新型号,戴尔(Dell) EMC PowerEdge R760机架式服务器产品特性及详细技术参数
  3. 日常安全运营工作的一些思考
  4. Python 6个维度,数万条数据帮你揭秘房租大涨!
  5. 利用JACK在Windows下PC之间传递声音
  6. iphone 文件app连接服务器,最快速 iPhone 和 Windows 之间传输文件的方法,无需安装APP!...
  7. UCSD异常检测数据集
  8. 随机点名器(java基础)
  9. 大数据开发平台-数据同步服务
  10. 学习使用微信小程序动态获取当前时间并实时跳动