【发布时间】:2019-12-16 20:50:38
【问题描述】:
我正在使用 asp.net core 2.2 和 Visual Studio 2019。运行我的应用程序的容器是 Debian(官方 aspnet:2.2 docker 映像之一)
所以我的情况是这样的。我有一个应用程序,它由 4 个在 docker 容器中运行的微服务组成,当它处于负载状态时,我看到容器节点上的 cpu 使用率非常高。我想做的是分析执行代码以了解资源使用情况。
作为一个起点,我想我只是在我的本地开发环境上运行一些分析,只是为了大致了解执行情况。尽管在生产中它在 Kubernetes 中运行,但我确实有一个使用 docker compose 的开发环境,并且我发现 Visual Studio Docker 工具相当不错。
我希望使用一些 Visual Studio 分析工具。我能够在我的本地运行的容器之一上安装 VSDBG 并在诊断窗格中使用 VS BUT 连接到它我看到“诊断工具窗口不支持当前的调试配置”。我也尝试过使用 docker compose 从 VS 运行项目,但是当我遇到断点时,我看到了相同的消息。我没有找到太多关于如何做到这一点的信息。
我还尝试使用 perfcollect 进行分析,但是在生成跟踪并使用 perfviewer 打开它之后,我在尝试查看 cpu 堆栈时遇到了解析错误。仍然不确定那里发生了什么。我确实在他们的github 上发现了一个旧的已关闭问题,描述了我所看到的内容,但最近有人发表评论说他们正在使用最新版本看到它,所以这可能是一种回归。
所以......毕竟......我的问题是这个。上述任何一种方法是否可行?有没有更好的方法来实现这一目标?我对有人成功查看在 linux docker 容器上运行的 .net core 2.2 应用程序的一些代码分析的任何方式感兴趣。我真正想做的就是能够看到我的代码中的执行时间在哪里以及正在消耗哪些资源。正如我所提到的,当我用谷歌搜索这个时,我并没有发现太多东西,而且我似乎一直在碰壁。如果有人对这里的方法有任何建议或指导,我将不胜感激。非常感谢!
【问题讨论】:
标签: visual-studio docker asp.net-core .net-core profiling