当前位置: 首页 > 知识库问答 >
问题:

MongoDB副本设置CPU负载

马国源
2023-03-14

程序的日志文件包含大量的getmore oplog查询-我猜主程序上的任何操作都会创建一个oplog查询。在我看来,这是太多的复制开销,但我没有任何关于MongoDB负载的经验,也没有任何关键数据。

由于安装程序将不得不容忍更多的生产负载,我的问题是,复制开销是否是预期的,即使是在次要服务器上,CPU负载增加这么高是否正常,还是我遗漏了什么?

共有1个答案

壤驷坚
2023-03-14

这样想吧。无论在主服务器上发生什么数据更改操作,它也需要在每个次服务器上发生。如果有许多这样的操作,并且它们在主服务器上造成了很高的CPU负载,那么同样的情况也会在次服务器上重演。

当然,在您的情况下,您希望主处理器的CPU压力更大,因为除了写之外,它还处理所有的读。可能,在您的场景中,读操作相对较少,与写操作相比,读操作并不多。这就解释了为什么主服务器上的负载与次服务器上的负载大致相同。

我的问题是复制开销是否是预期的

您所说的复制开销,我认为是复制的本质。一个由写重读的初级部分会导致所有的次级部分也由写重读。

CPU负载上升到如此之高是否正常,即使是在第二个

您每秒有600次写查询,您的RAM和磁盘没有压力,对我来说,这意味着您已经正确地设置了索引。由于索引被大量使用,因此每秒的写操作量会带来较高的CPU负载。

 类似资料:
  • 问题内容: 有没有一种方法可以在不使用JNI的情况下获取Java下的当前cpu负载? 问题答案: 使用获取并调用它。

  • 当批准日期晚于今天时,我试图更改行的颜色。此时,行应该被涂成红色……知道为什么这段代码不能工作吗?

  • 我用JMeter创建了测试来测试幽灵博客平台的性能。Ghost是用Node.js编写的,安装在云服务器上,有1GB的内存和1个CPU。 我注意到在400个并发用户之后JMeter得到错误。到400个并发用户的负载是正常的。我决定增加CPU,增加了1个CPU。 但是错误重现并添加了2个CPU,总共4个CPU。问题发生在400个并发用户之后。 我想知道是否有可能平衡CPU之间的负载?

  • 问题内容: 我正在进行一些吞吐量测试。我的申请必须 从JMS读取 做一些处理 写入JMS 我的目标是模拟#2,“一些处理”。也就是说,在转发事件之前引入延迟并在给定时间(例如500ms)内占用CPU。 天真的方法是。这将导致正确的执行延迟,但不会占用CPU。 计算斐波纳契数是一种选择。 有没有人使用任何有趣的技术只是为了让CPU在给定时间内忙碌? 理想的特征是: 执行各种指令,而不是(例如)仅在循

  • 在这个代码中,-20应该是最小值,因为它是负数,并且离零最远,正确吗?但当我运行MinAlgoritm时,会打印出整数5。我有一个最大版本的这个可以很好地工作,但这个不行。这怎么可能?我能做些什么改进吗?

  • 下面的表达式捕获正的美元值,即400美元,我如何修改它以只捕获负值。