这场MongDB事故暴露的潜在危机,你是否也正在忽视?
副问题[/!--empirenews.page--]
一、MongoDB特征 MongoDB是一个可扩展的高机能基于文档的NoSQL数据库,具备但不限于以下特征: 无数据布范围制和高机能
富厚的支持
利便的冗余与扩展
精采的支持
二、MongoDB妨碍经验 基于MongoDB的优秀机能,在我司也越来越多的行使。跟着营业改观,负载增进,一些题目也逐渐袒暴露来,在我司内部最近就遭遇多起MongoDB妨碍,下面简朴先容个中一个: 营业配景 该套体系为内部主机监控体系,包罗IO、CPU、内存、文件体系以及收集数据等,按照其监控项目自己特征,采样频率几秒到10分钟不等,因接入监控的主机数目较多,逐日数据量较大。 该营业初始行使了3分片的cluster,分片筹划由营业侧同事筹划实验。 妨碍进程 营业侧反馈特定某些时段营业无法毗连到MongoDB,每每几分钟后自动规复了正常,且最近营业相应比早年明明减慢。 妨碍说明 接到反馈后,搜查MongoDB日记,发明阶段性呈现毗连用尽的告警,揣摩也许是营业最近有过调解。后经营业同事确认,最近确认新接入了一批主机到该监控体系。
理论值和妨碍时环境匹配,鉴定造成营业中断性无法毗连的缘故起因是参数配置不公道。 中断性呈现和营业模式有相关,前面提到营业差异指标隔断几秒到异常钟采样,采样入库峰值时部门营业失败。 姑且处理 得益于MongoDB的副本集利便调解的特点,转动修改了各个节点参数(调解open files value到64000),并重启MongoDB处事。 深入说明 此次妨碍缘故起因很简朴,但这激发了我们一些反思:
带着这样的题目,我们从头审阅说明白该体系的行使环境。不查不知道,一查下一跳,真的搜查出诸多题目:
调解优化 针对存在的题目做了以下几方面的调解: 调解体系参数
另外禁用了numa,Transparent HugePages及修改了磁盘调治计策: 开启MongoDB Profile
团结营业从头配置荟萃片键 从头计划分片是本次调解的重点,那么为什么说当前体系的分片不公道,分片的依据是什么呢?这里先说一下我们评估的依据: 好的片键
欠好的片键
当前数据库内仅有少数荟萃举办了分片,而且片键均为时刻范例,造成负载齐集在个中一个分片上。我们但愿能找到一种既能担保足够的粒度,不会造成巨型chunk,也能节制分片粒度,不会低落服从。 凭证上述原则,我们搭建了测试情形,与营业同事配合接头并举办了多次测试,实行了差异的分片组合及分片方法,比拟了差异分片下的营业机能,我们总结出如下法则: {Locality: 1,search : 1}:第一个字段节制局部的数据,第二个字段为常用的搜刮字段;第一个字段为粗粒度字段,第二个字段为细粒度字段。 功效比拟 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |