开始:我们正在使用uwsgi,并决定切换我们的configuration以使用更多的工人/stream程。
原因:最近我们看到了stream量的增加,并且在使用apache基准testing的情况下,新的configuration使得更多的工作者和进程performance得更好(更快,更less的请求下降)。
发生了什么事情:在将configuration更改推送到我们的应用程序服务器之后,我们看到了应用程序服务器cpu的一个直接上升(这并不奇怪),而且在我们的mongodb服务器cpu上同样剧增。
有问题的行为:为什么当读取和写入与应用程序configuration更改完全一样时,mongodb cpu或mongo服务器上的其他任何内容是否应该改变?
更多的细节:
编辑:我也注意到,在新的configuration期间,mongo服务器(3倍)的连接数量大幅增加,更多的工作人员=更多的连接?
所以你对更多工人的问题意味着更多的联系,这是真的。 我不确定你是否使用了mongos,但是脚本在等待更多的工作的时候会和mongobuild立连接。
现在关于你的问题,为什么当你无所事事的时候,CPU的负载正在越来越大。 但增加更多的工人。 我不知道你是在同一个机器上运行mongo和worker,但是可能发生的是linux内核对进程的开销。 它必须唤醒他们让他们跑或看他们是否需要跑,然后切换。 这不是免费的,但它不像它的疯狂成本。