化妆品直播卡死,.NET WebAPI问题如何排查解决?

2026-03-30 10:431阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计497个文字,预计阅读时间需要2分钟。

化妆品直播卡死,.NET WebAPI问题如何排查解决?

目录+一:背景+1. 讲故事+二:Windbg分析+1. 线程们怎么了+2. 单例写法真的没问题吗?+3. 验证我的想法+4. 后续+三:总结+1. 讲故事+10月份星球里的一位老朋友找到我,说他们公号

目录
  • 一:背景
    • 1. 讲故事
  • 二:Windbg 分析
    • 1. 线程们都怎么了
    • 2. 单例写法真的没问题吗
    • 3. 验证我的想法
    • 4. 后续
  • 三:总结

    一:背景

    1. 讲故事

    10月份星球里的一位老朋友找到我,说他们公司的程序在一个网红直播带货下给弄得无响应了,无响应期间有大量的 RabbitMQ 超时,寻求如何找到根源,聊天截图我就不发了。

    既然无响应了,那必然是程序的大量线程被主动或者被动的挂起,朋友也很及时的从程序上抽了一管血下来,接下来就上 windbg 一起探究下到底发生了什么?

    化妆品直播卡死,.NET WebAPI问题如何排查解决?

    二:Windbg 分析

    1. 线程们都怎么了

    要想看所有线程,还是老命令!t。

    0:000> !t ThreadCount: 5221 UnstartedThread: 0 BackgroundThread: 5199 PendingThread: 0 DeadThread: 21 Hosted Runtime: no Lock DBG ID OSID ThreadOBJ State GC Mode GC Alloc Context Domain Count Apt Exception 20 1 74e4 00000276CB778180 202a020 Preemptive 0000000000000000:0000000000000000 00000276cb77c9d0 -00001 MTA 31 2 42cc 00000276CB6CA830 2b220 Preemptive 0000000000000000:0000000000000000 00000276cb77c9d0 -00001 MTA (Finalizer) 32 3 2b40 00000276CB85D1B0 102a220 Preemptive 0000000000000000:0000000000000000 00000276cb77c9d0 -00001 MTA (Threadpool Worker) 2 6 bccc 00000276CBA5D2F0 20220 Preemptive 0000000000000000:0000000000000000 00000276cb77c9d0 -00001 Ukn 33 9 7224 00000276CBA5C0C0 3029220 Preemptive 0000000000000000:0000000000000000 00000276cb77c9d0 -00001 MTA (Threadpool Worker) System.IO.IOException 00000279ccc56cd0 9 23 29e0 0000027BD86FD180 20220 Preemptive 0000000000000000:0000000000000000 00000276cb77c9d0 -00001 Ukn ...

    从简要信息看,当前有5000+的线程,太牛了,一般一台机器的所有进程的线程加起来也没这么多。。。不过我目前看到最多的是1w +的线程

    本文共计497个文字,预计阅读时间需要2分钟。

    化妆品直播卡死,.NET WebAPI问题如何排查解决?

    目录+一:背景+1. 讲故事+二:Windbg分析+1. 线程们怎么了+2. 单例写法真的没问题吗?+3. 验证我的想法+4. 后续+三:总结+1. 讲故事+10月份星球里的一位老朋友找到我,说他们公号

    目录
    • 一:背景
      • 1. 讲故事
    • 二:Windbg 分析
      • 1. 线程们都怎么了
      • 2. 单例写法真的没问题吗
      • 3. 验证我的想法
      • 4. 后续
    • 三:总结

      一:背景

      1. 讲故事

      10月份星球里的一位老朋友找到我,说他们公司的程序在一个网红直播带货下给弄得无响应了,无响应期间有大量的 RabbitMQ 超时,寻求如何找到根源,聊天截图我就不发了。

      既然无响应了,那必然是程序的大量线程被主动或者被动的挂起,朋友也很及时的从程序上抽了一管血下来,接下来就上 windbg 一起探究下到底发生了什么?

      化妆品直播卡死,.NET WebAPI问题如何排查解决?

      二:Windbg 分析

      1. 线程们都怎么了

      要想看所有线程,还是老命令!t。

      0:000> !t ThreadCount: 5221 UnstartedThread: 0 BackgroundThread: 5199 PendingThread: 0 DeadThread: 21 Hosted Runtime: no Lock DBG ID OSID ThreadOBJ State GC Mode GC Alloc Context Domain Count Apt Exception 20 1 74e4 00000276CB778180 202a020 Preemptive 0000000000000000:0000000000000000 00000276cb77c9d0 -00001 MTA 31 2 42cc 00000276CB6CA830 2b220 Preemptive 0000000000000000:0000000000000000 00000276cb77c9d0 -00001 MTA (Finalizer) 32 3 2b40 00000276CB85D1B0 102a220 Preemptive 0000000000000000:0000000000000000 00000276cb77c9d0 -00001 MTA (Threadpool Worker) 2 6 bccc 00000276CBA5D2F0 20220 Preemptive 0000000000000000:0000000000000000 00000276cb77c9d0 -00001 Ukn 33 9 7224 00000276CBA5C0C0 3029220 Preemptive 0000000000000000:0000000000000000 00000276cb77c9d0 -00001 MTA (Threadpool Worker) System.IO.IOException 00000279ccc56cd0 9 23 29e0 0000027BD86FD180 20220 Preemptive 0000000000000000:0000000000000000 00000276cb77c9d0 -00001 Ukn ...

      从简要信息看,当前有5000+的线程,太牛了,一般一台机器的所有进程的线程加起来也没这么多。。。不过我目前看到最多的是1w +的线程