【发布时间】:2011-10-19 13:40:27
【问题描述】:
我有一个启动工作进程的 python(2.6.5 64 位,Windows 2008 Server R2)应用程序。父进程将作业放入作业队列中,工作人员从中提取它们。同样,它有一个结果队列。每个工作人员通过查询服务器来执行其工作。工作人员的 CPU 使用率很低。
当工作人员数量增加时,服务器上的 CPU 使用率实际上会减少。服务器本身不是瓶颈,因为我可以从其他应用程序进一步加载它们。
还有其他人看到过类似的行为吗?当大量进程正在读取或写入相同的队列时,python 多处理队列是否存在问题?
【问题讨论】:
-
请您澄清一下,您是说“我增加了工人的数量,但完成的工作量减少了”?
-
你能分享一些代码吗?可能有很多原因,具体取决于实施。
-
@MattH:更少的工作意味着(A)服务器上的 CPU 使用率下降,(B)记录结果的速率下降。 (记录结果不是瓶颈,已经过测试,服务器处理能力过剩。)。
-
@Underhill:您的问题让我感到困惑,因为您交替谈论服务器和服务器,提到工人的工作是查询服务器。工人和父母都在同一个系统上吗?是不是那个系统的 CPU 使用率随着工作人员的增加而下降?
-
@MattH:父母和工人在同一个系统上。无论工人数量如何,这台机器上的 CPU 利用率总是很低。服务器是独立的机器;这些机器的 CPU 使用率在大量工人数量下会下降。
标签: python message-queue multiprocessing