Go Evio 应用程序突然没有响应。分析显示所有线程都已停止
Posted
技术标签:
【中文标题】Go Evio 应用程序突然没有响应。分析显示所有线程都已停止【英文标题】:Go Evio application suddenly does not respond. Profiling shows all threads have stopped 【发布时间】:2021-04-19 16:19:25 【问题描述】:我们在 docker 中有一个基于Evio 的应用程序。在运行一些网络负载测试时,我们可以看到所有线程突然下降,堆被刷新。几秒钟超时后,它会像往常一样继续执行。应用程序本身没有重新启动,但所有 Evio 线程都死了大约 5 秒。
什么会导致这种行为?
配置:
Go 1.14
Ubuntu 20.04.1 LTS
Docker version 20.10.6
查看分析跟踪:
【问题讨论】:
好像没有涉及docker。用裸机应用重新测试。结果是一样的 【参考方案1】:问题不在 Evio 或 Go 分析中。经过更多调查,很明显所有例程都被外部服务阻止了。在我们的例子中,gRPC 连接处于阻塞模式,其他实例无法处理如此多的请求。
这个视频也很有帮助。它显示了类似的症状以及如何分析它们。 https://www.youtube.com/watch?v=V74JnrGTwKA
【讨论】:
以上是关于Go Evio 应用程序突然没有响应。分析显示所有线程都已停止的主要内容,如果未能解决你的问题,请参考以下文章