- 博客(19)
- 收藏
- 关注
原创 百万级高并发mongodb集群性能数十倍提升优化实践(下篇)
百万级高并发mongodb集群性能数十倍提升优化实践(下篇)关于作者前滴滴出行技术专家,现任OPPO文档数据库mongodb负责人,负责oppo千万级峰值TPS/十万亿级数据量文档数据库mongodb研发和运维工作,一直专注于分布式缓存、高性能服务端、数据库、中间件等相关研发。后续持续分享《MongoDB内核源码设计、性能优化、最佳运维实践》,Github账号地址:https://github.com/y123456yz前言温馨提示:在进行本下篇优化文章阅读前,可以提...
2020-10-05 10:19:49 1333
原创 Mongodb特定场景性能数十倍提升优化实践(记一次mongodb核心集群雪崩故障)
问题背景某核心JAVA长连接服务使用mongodb作为主要存储,客户端数百台机器连接同一mongodb集群,短期内出现多次性能抖动问题,此外,还出现一次“雪崩”故障,同时流量瞬间跌零,无法自动恢复。本文分析这两次故障的根本原因,包括客户端配置使用不合理、mongodb内核链接认证不合理、代理配置不全等一系列问题,最终经过多方努力确定问题根源。该集群有十来个业务接口访问,每个接口部署在数十台业务服务器上面,访问该mongodb机器的客户端总数超过数百台,部分请求一次拉取数十行甚至百余行数据。该集群为2.
2020-10-04 11:38:12 479
原创 常用高并发网络线程模型设计及mongodb线程模型优化实践
1. 线程模型一. 单线程网络IO复用模型说明:1. 所有网络IO事件(accept事件、读事件、写事件)注册到epoll事件集2. 主循环中通过epoll_wait一次性获取内核态收集到的epoll事件信息,然后轮询执行各个事件对应的回调。3. 事件注册、epoll_wait事件获取、事件回调执行全部由一个线程处理1.1一个完整请求组成一个完整的请求处理过程主要包含以下几个部分:步骤1:通过epoll_wait一次性获取网络IO事件...
2020-07-31 14:25:43 349
原创 Mongodb网络传输处理源码实现及性能调优-体验内核性能极致设计
开源mongodb代码规模数百万行,本篇文章内容主要分析mongodb网络传输模块内部实现及其性能调优方法,学习网络IO处理流程,体验不同工作线程模型性能极致设计原理。另外一个目的就是引导大家快速进行百万级别规模源码阅读,做到不同大工程源码”举一反三”快速阅读的目的。此外,mognodb网络工作线程模型设计非常好,不仅非常值得数据库相关研发人员学习,中间件、分布式、高并发、服务端等相关研发人员也可以借鉴,极力推荐大家学习。1. 如何阅读数百万级大工程内核源码Mongodb内核源码由第三方库thi
2020-06-01 11:50:14 1387 2
原创 百万级高并发mongodb集群性能数十倍提升优化实践(上篇)
背景线上某集群峰值TPS超过100万/秒左右(主要为写流量,读流量很低),峰值tps几乎已经到达集群上限,同时平均时延也超过100ms,随着读写流量的进一步增加,时延抖动严重影响业务可用性。该集群采用mongodb天然的分片模式架构,数据均衡的分布于各个分片中,添加片键启用分片功能后实现完美的负载均衡。集群每个节点流量监控如下图所示:从上图可以看出集群流量比较大,峰值已经突破120万/...
2019-12-11 20:14:48 2974 2
原创 在线引流工具Tcpcopy原理、使用、采坑
手把手教你做中间件、高性能服务器、分布式存储技术交流群手把手教你做中间件、高性能服务器、分布式存储等(redis、memcache、nginx、大容量redis pika、rocksdb、mongodb、wiredtiger存储引擎、高性能代理中间件),git地址如下: https://github.com/y123456yz/middleware_development_learnin...
2019-06-20 14:13:49 16758
原创 linux内核协议栈TCP time_wait原理、配置、副作用
0. 手把手教你做中间件、高性能服务器、分布式存储技术交流群手把手教你做中间件、高性能服务器、分布式存储等(redis、memcache、nginx、大容量redis pika、rocksdb、mongodb、wiredtiger存储引擎、高性能代理中间件),git地址如下:git地址:https://github.com/y123456yz/middleware_development_le...
2019-06-20 13:56:54 221
原创 Nginx多进程高并发、低时延、高可靠机制在缓存代理中的应用
1 开发背景现有开源缓存代理中间件有twemproxy、codis等,其中twemproxy为单进程单线程模型,只支持memcache单机版和redis单机版,都不支持集群版功能。由于twemproxy无法利用多核特性,因此性能低下,短连接QPS大约为3W,长连接QPS大约为13W; codis起几十个线程,短连接qps不超过10万;同时某些场景这些开源软件时延抖动厉害。为了适应公有云平...
2019-02-28 16:23:23 817 3
原创 mongodb内核源码实现、性能调优、最佳运维实践系列-mongodb网络传输层模块源码实现二
mongodb内核源码实现、性能调优、最佳运维实践系列-mongodb网络传输层模块源码实现二
2020-11-30 14:01:30 180
原创 mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现二
mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现二
2020-11-30 13:57:32 178 1
原创 mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现一
mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现一
2020-11-30 13:56:29 179
原创 mongodb内核源码实现、性能调优、最佳运维实践系列-transport_layer网络传输层模块源码实现四
mongodb内核源码实现、性能调优、最佳运维实践系列-transport_layer网络传输层模块源码实现四
2020-10-23 20:20:03 107
原创 mongodb内核源码实现、性能调优、最佳运维实践系列-mongodb网络传输层模块源码实现三
mongodb内核源码实现、性能调优、最佳运维实践系列-mongodb网络传输层模块源码实现三
2020-10-23 20:19:13 149
原创 Mongodb集群搭建一篇就够了-复制集模式、分片模式、带认证、不带认证等(带详细步骤说明)
Mongodb集群搭建一篇就够了-复制集模式、分片模式、带认证、不带认证等(带详细步骤说明)
2020-10-23 20:17:37 192
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人