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

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

  •  
  •   drymonfidelia · 30 天前 · 1238 次点击
    都是 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  
       30 天前
    用 jadger, pinpoint 这种链路追踪的库
    PTLin
        2
    PTLin  
       30 天前
    perf 吧
    hez2010
        3
    hez2010  
       30 天前   ❤️ 1
    可以考虑接上 .NET 自带的 OpenTelemetry 集成? https://learn.microsoft.com/dotnet/core/diagnostics/observability-with-otel
    这样可以详细跟踪你的 asp.net core 的各接口甚至是数据库查询的执行情况,然后你只需要用 Jaeger 之类的就能做分布式追踪。
    ShineyWang
        4
    ShineyWang  
       30 天前 via Android   ❤️ 1
    dottrace 可以检查耗时方法

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