gpt4 book ai didi

java - 诊断 appengine java 后端在已部署的应用程序中挂起

转载 作者:行者123 更新时间:2023-12-02 08:00:47 27 4
gpt4 key购买 nike

我们正在使用后端来并行化我们的大批量工作用户。这涉及到将 100 个任务添加到专用队列中将任务分散到 5 个动态后端。其中许多任务都执行获取外部 Web 服务的 url。

当我们为一个用户运行它时,它似乎工作正常,但是一旦我们为许多用户运行它(例如,在每晚的批处理运行中),我们看到大多数后端最终停止处理新任务。

我们已尝试对其进行速率限制,但这也没有帮助。我可以手动停止卡住的后端和新的后端将启动并启动处理直到它们也卡住。最终一切完成后停止卡住服务器的几次迭代。

显然这严重限制了我们的扩展能力,所以我想知道如何诊断这个问题。我们无法重现这一点本地主机,因为它不是真正的多线程,也不是真正的复制已部署的数据模式。

我们可以通过使用拉取队列来处理这个问题,但仅此而已要编写的代码,我宁愿让队列/后端调度程序来执行此操作为我们工作。

我想做的是将分析器或 jconsole 附加到后端 - 这将立即告诉我卡住是从哪里来的。是这样吗可能的?如果没有,有没有人有其他我们可以使用的技巧诊断卡住的后端?

仅供引用:“卡住”实例的内存级别从 150mb 不等到 250mb,即可能是内存泄漏,但内存数量并不真正支持这一点,它们在卡住时消耗零 cpu 并且不处理新任务。

感谢您的关注和帮助,史蒂夫

最佳答案

过去我使用过Java VisualVM 。您可以将它附加到远程运行的 JVM 并使用它来获取内存转储并检查 CPU/线程使用情况等。它对于计算此类内容非常方便。

关于java - 诊断 appengine java 后端在已部署的应用程序中挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8949741/

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