mongo和app服务器cpu

开始:我们正在使用uwsgi,并决定切换我们的configuration以使用更多的工人/stream程。

原因:最近我们看到了stream量的增加,并且在使用apache基准testing的情况下,新的configuration使得更多的工作者和进程performance得更好(更快,更less的请求下降)。

发生了什么事情:在将configuration更改推送到我们的应用程序服务器之后,我们看到了应用程序服务器cpu的一个直接上升(这并不奇怪),而且在我们的mongodb服务器cpu上同样剧增。

有问题的行为:为什么当读取和写入与应用程序configuration更改完全一样时,mongodb cpu或mongo服务器上的其他任何内容是否应该改变?

更多的细节:

  • 我们在Amazon AWS上托pipe所有内容
  • 我们使用一个mongo副本集
  • 辅助mongo服务器受到的影响更大(以及从中读取的应用程序服务器)
  • Mongo版本2.2

编辑:我也注意到,在新的configuration期间,mongo服务器(3倍)的连接数量大幅增加,更多的工作人员=更多的连接?

所以你对更多工人的问题意味着更多的联系,这是真的。 我不确定你是否使用了mongos,但是脚本在等待更多的工作的时候会和mongobuild立连接。

现在关于你的问题,为什么当你无所事事的时候,CPU的负载正在越来越大。 但增加更多的工人。 我不知道你是在同一个机器上运行mongo和worker,但是可能发生的是linux内核对进程的开销。 它必须唤醒他们让他们跑或看他们是否需要跑,然后切换。 这不是免费的,但它不像它的疯狂成本。