V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
drymonfidelia
V2EX  ›  .NET

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

  •  
  •   drymonfidelia · 242 天前 · 2357 次点击
    这是一个创建于 242 天前的主题,其中的信息可能已经有所发展或是发生改变。
    都是 ASP .NET Core 6.0
    系统大部分是 Ubuntu 22.04 ,也有 20.04 和 18.04 的,总共十几台机器,给不同客户使用
    大部分是裸机部署,也有部署在 Docker 里的
    7 条回复    2024-04-01 17:36:38 +08:00
    BBCCBB
        1
    BBCCBB  
       242 天前
    用 jadger, pinpoint 这种链路追踪的库
    PTLin
        2
    PTLin  
       242 天前
    perf 吧
    hez2010
        3
    hez2010  
       242 天前   ❤️ 1
    可以考虑接上 .NET 自带的 OpenTelemetry 集成? https://learn.microsoft.com/dotnet/core/diagnostics/observability-with-otel
    这样可以详细跟踪你的 asp.net core 的各接口甚至是数据库查询的执行情况,然后你只需要用 Jaeger 之类的就能做分布式追踪。
    ShineyWang
        4
    ShineyWang  
       242 天前 via Android   ❤️ 1
    dottrace 可以检查耗时方法

    它需要附加调试程序
    Allvirus
        5
    Allvirus  
       242 天前
    都知道是啥接口慢了 还不能知道是自己哪里的问题?
    drymonfidelia
        6
    drymonfidelia  
    OP
       242 天前
    @Allvirus 一个函数几千行代码的屎山,制造者离职了
    INCerry
        7
    INCerry  
       241 天前   ❤️ 1
    可以使用 dotnet-trace 工具抓取一段时间跟踪信息,然后拉到本地用 VS 打开就可以看到热点函数了。
    https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/dotnet-trace
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3475 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:00 · PVG 13:00 · LAX 21:00 · JFK 00:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.