阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MongoDB集群单mongos的问题解决实例

417次阅读
没有评论

共计 2261 个字符,预计需要花费 6 分钟才能阅读完成。

问题发现

在使用过程中,通过 spark 访问集群的效率不是很令人满意,80 核心同时运行的速度比单核心也就快了 20 倍左右,预测瓶颈在 mongodb 读写上。当然,此时没遇到其他问题暂时没进行问题梳理。

在数据规模增大之后,通过 spark 访问 mongodb 集群会造成 mongos 节点远程连接时输入命令卡顿,怀疑出现了某些性能瓶颈。

具体问题出现如下:

1、某一天发现主节点 mongod 崩溃。

2、当天重新执行 spark 任务,第二天发现主节点服务器无法连接,去机柜查看发现主节点服务器宕机,于是决定认真查找瓶颈。

3、重新运行任务,执行 top 命令:发现计算机核心使用率为 100% 左右,由于本服务器拥有 32 核心,并且 spark 使用其中 16 核心,所以在 Ubuntu 系统下 CPU 使用率小于 1600% 都是正常的,CPU 不是系统瓶颈。

使用 free - m 发现内存仍有剩余,内存不是系统瓶颈。

使用 sudo iftop 命令,发现 TX 和 RX 都在 800Mb 以上,初步确认是网络带宽瓶颈。

查询系统 IO 和硬盘容量,排除磁盘问题。

4、确认为网络带宽问题。

问题解决 

本地网络环境采用的是万兆网卡和千兆交换机,对于大部分应用足够使用,但是执行 spark 任务时,由于 mongos 只有主节点存在,所以所有数据读取任务均占用主节点带宽,如果想要正常使用则需要降低并发度或者提供负载均衡。

Mongodb 自身支持负载均衡,对一个 sharding 集群而言,所有的元数据信息分别存放在 mongod 里面,但是所有 router 信息都是放在 configsvr 中的(包含权限管理的用户信息等),所以想要拓展 mongos 异常简单,把 Mongos 的 config 文件分发到想要启动 mongos 的机器上,修改一下 bindIP 直接启动即可,启动后的使用方式和之前的 mongos 一致,用户信息也都存在不需要重新创建用户。

由于本集群使用了 5 台服务器部署 Mongod,于是解决办法就是将 Mongos 也启动 5 个,相当于启动了 5 个单独的服务端。

启动后重新执行 spark 任务,在每台服务器上执行 iftop 查看网络使用,发现 TX 和 RX 均有 300Mb 左右。网络带宽不再是集群的使用瓶颈。

Mongodb 的标准 uri 格式如下:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

所以使用时也异常简单,把代码中创建 MongoURI 或者 ReadConfig 或者 spark.mongodb.imput.uri 中的 uri 按上面格式加入多个 host 和 port 即可。

问题反思

1、问题出现早有预兆,应当及早解决这些问题,提前引起重视。

2、mongodb 的文档中对 URI 的介绍在 Reference > Connection String URI Format 中,当时没有看到,所以没找到 怎么连接多个 Mongos 的方法。只启动一个 mongos,但是当时其实也有考虑过可能遇到并发瓶颈的问题,但是没有深究。之后的平台搭建要进行更详尽的设计再进行部署会更加合适。

3、直接在物理机上部署虽好,但是在容器上更容易进行拓展。并且当前的系统以后可能会在多地部署,如果直接部署在 k8s 上会省下大量部署时间和节约大量人力成本。

4、曾经以为千兆网够用了,以后采购还是万兆网设备更好。

 

更多 MongoDB 相关教程见以下内容

 

MongoDB 文档、集合、数据库简介  http://www.linuxidc.com/Linux/2016-12/138529.htm

 

MongoDB 3 分片部署及故障模拟验证  http://www.linuxidc.com/Linux/2016-12/138529.htm

 

Linux CentOS 6.5 yum 安装 MongoDB  http://www.linuxidc.com/Linux/2016-12/137790.htm

 

CentOS 7 yum 方式快速安装 MongoDB  http://www.linuxidc.com/Linux/2016-11/137679.htm

 

MongoDB 的查询操作  http://www.linuxidc.com/Linux/2016-10/136581.htm

 

在 Azure 虚拟机上快速搭建 MongoDB 集群  http://www.linuxidc.com/Linux/2017-09/146778.htm

 

MongoDB 复制集原理  http://www.linuxidc.com/Linux/2017-09/146670.htm

 

MongoDB 3.4 远程连接认证失败  http://www.linuxidc.com/Linux/2017-06/145070.htm

 

Ubuntu 16.04 中安装 MongoDB3.4 数据库系统  http://www.linuxidc.com/Linux/2017-07/145526.htm

 

MongoDB 权威指南第 2 版 PDF 完整带书签目录 下载见 http://www.linuxidc.com/Linux/2016-12/138253.htm

 

MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里

 

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149534.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2261字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7799623
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示 首先来回顾一下 10...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...