ASP.NET Core 在 Linux 下部分接口耗时长、并发性能差,除了逐步打印日志,还有什么方便、直观的办法查出是哪一步耗时长吗?

270 天前
 drymonfidelia
都是 ASP .NET Core 6.0
系统大部分是 Ubuntu 22.04 ,也有 20.04 和 18.04 的,总共十几台机器,给不同客户使用
大部分是裸机部署,也有部署在 Docker 里的
2498 次点击
所在节点    .NET
7 条回复
BBCCBB
270 天前
用 jadger, pinpoint 这种链路追踪的库
PTLin
270 天前
perf 吧
hez2010
270 天前
可以考虑接上 .NET 自带的 OpenTelemetry 集成? https://learn.microsoft.com/dotnet/core/diagnostics/observability-with-otel
这样可以详细跟踪你的 asp.net core 的各接口甚至是数据库查询的执行情况,然后你只需要用 Jaeger 之类的就能做分布式追踪。
ShineyWang
270 天前
dottrace 可以检查耗时方法

它需要附加调试程序
Allvirus
269 天前
都知道是啥接口慢了 还不能知道是自己哪里的问题?
drymonfidelia
269 天前
@Allvirus 一个函数几千行代码的屎山,制造者离职了
INCerry
269 天前
可以使用 dotnet-trace 工具抓取一段时间跟踪信息,然后拉到本地用 VS 打开就可以看到热点函数了。
https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/dotnet-trace

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1028558

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX