记一次 .NET某酒店后台服务 卡死分析
原文中文,约7100字,阅读约需17分钟。发表于: 。一:背景 1. 讲故事停了一个月没有更新文章了,主要是忙于写 C#内功修炼系列的PPT,现在基本上接近尾声,可以回头继续更新这段时间分析dump的一些事故报告,有朋友微信上找到我,说他们的系统出现了大量的http超时,程序不响应处理了,让我帮忙看下怎么回事,dump也抓到了。二:WinDbg分析 1. 为什么会出现请求超时既然超时说明server端不响应这个请求,继而达到了超时时间的一种异常情况,...
作者在分析系统出现大量http超时问题时,发现线程池中的工作线程都处于运行状态,线程池队列也积压了大量待处理任务。通过分析线程堆栈,作者发现问题是由开源的日志收集组件发送的心跳检测方法引起的。作者提出了两种解决方法:升级框架或者不使用该组件。文章还解答了关于线程注入速度的问题,指出在.NET Framework时代,线程池内部的GateThread线程每秒注入一个活线程。作者总结了分析问题时发现第三方组件可能拖垮程序的无奈感受。