我们正在使用后端来为我们的大批量工作并行化 用户。这涉及将100个任务添加到专用队列中 将任务分散到5个动态后端。其中许多任务都有 url获取外部Web服务。
当我们为一个用户运行它时,它似乎工作正常,但我们一下子 为许多用户运行它(例如在夜间批量运行中)我们看到了大部分用户 后端最终停止处理新任务。
我们已经尝试过限速,但这也没有帮助。我可以手动停止 被冻结的后端和新的后端将启动并启动 处理,直到他们太冻结。最终一切都在完成之后完成 几次停止冻结服务器的迭代。
显然这严重限制了我们的扩展能力,所以我 想知道如何诊断这个问题。我们无法重现这一点 localhost因为它不是真正的多线程而且不是真正的 复制部署的数据模式。
我们可以通过使用拉队列来解决这个问题,但更多 要编写的代码,我宁愿让队列/后端调度程序执行此操作 为我们工作。
我想做的是将探查器或jconsole连接到后端 - 这样做 马上告诉我冻结的来源。那是偶数 可能?如果没有,是否有人可以使用任何其他技巧 诊断冷冻后端?
fyi:“冻结”实例的内存水平从150mb不等 到250mb,即它可能是内存泄漏,但内存数量并不真正支持,它们在冻结时消耗零CPU并且不处理任何新任务。
感谢您的关注和帮助,Steve