mongodb每秒写入量_Mongodb读取数据缓慢问题-Spark&Mongodb

问题

在我现在工作的集群环境上,读取基础表(30.6MB,47106条数据),耗时10秒,在另一个组(叫B组)吧,我的叫A组吧,的集群环境上耗时1毫秒。从mongodb的操作来看,其操作数超过了14000次/s。

问题分析

从后台的IO上来看,两个环境的sdb磁盘使用率都达到了100%。更仔细的话,发现两个环境中的资源写入量不同,我的组写入量在10MB/s~30MB/s,而B组环境写入量在500KB/s~1MB/s。简单的sdb磁盘使用率并不能代表mongodb的性能。所以要从从监控来看。

做一些测试所有统计值是在业务组将其最大流量的业务去掉之后的统计值;

数据库数据量从739GB删除到208GB后的统计。

我的组

B组

从平均网络传输来看,网络输入和输出均是我的环境的量更大。同时网络输出量比网络输入量大。而B组环境是因为业务不多,数据更多是流处理的写入数据,用于查询数据的批处理业务较少。因此,从网络传输量角度分析发现,我组存在大批量的文件传输。这些传输主要是表现在mongodb与磁盘交互的操作(查询、插入、更新、删除)。

Granfana监控能够监控当前mongodb的所有操作数量(A组)。

B组

我组环境是B组环境的4倍。其中主要的操作是插入操作。这也解释了我组为什么IO比B组高的原因。但该操作数不能反映实际的操作,例如对于批插入操作,虽然只有1次操作,但是实际上mongodb进行多次操作。

将mongodb的各个分片的操作数进行统计,进行分析。统计方法如下:

比如现在我进入了mongos容器中发现,(以前容器生命周期是由K8S维护)

kubectl exec -it -n a-service mongodb-cdf487ds bash

执行统计(在mongodb的容器内)

mongostat --port 26000 --discover

可以看到统计数据。

对该数据进行监控大约半小时的数据,进行统计其各个类型的操作数量。另外根据压测结果表明当前A组环境的总操作数达到2万/s时,其磁盘IO达到100%,在数据统计中为了避免最大值和最小值相差太悬殊而影响统计效果;因此对数据进行过滤ÿ

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值