gpt4 book ai didi

Python 多处理队列可扩展到大量工作线程

转载 作者:太空宇宙 更新时间:2023-11-03 19:26:49 25 4
gpt4 key购买 nike

我有一个启动工作进程的 python(2.6.5 64 位,Windows 2008 Server R2)应用程序。父进程将作业放入作业队列中,工作人员从中获取作业。类似地,它有一个结果队列。每个工作人员通过查询服务器来执行其工作。工作人员的 CPU 使用率较低。

当工作线程数量增加时,服务器上的 CPU 使用率实际上会减少。服务器本身不是瓶颈,因为我可以从其他应用程序进一步加载它们。

还有其他人看到过类似的行为吗?当大量进程读取或写入同一队列时,Python 多处理队列是否存在问题?

最佳答案

关于性能限制的两种不同想法:

  1. 瓶颈在于工作线程与父进程之间相互争斗,争夺作业队列的访问权。
  2. 瓶颈是服务器上的连接速率限制(syn-flood 保护)。

收集更多信息:

  1. 分析已完成的工作量:每秒完成的任务,将此作为您的核心性能指标。
  2. 使用数据包捕获来查看网络事件中的网络级延迟。
  3. 让您的员工记录他们等待访问作业队列的时间。

可能的改进:

  1. 让您的工作人员使用持久连接(如果可用/适用)(例如 HTTP)。
  2. 将任务拆分为多个作业队列,并提供给工作人员池。

关于Python 多处理队列可扩展到大量工作线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7822207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com