如何通过Windows性能计数器获取ThreadPool统计数据?适配ASP.NET(.NET Framework)
ASP.NET (.NET Framework) ThreadPool 指标性能计数器监控说明
可以通过Windows性能计数器获取绝大多数ThreadPool运行指标,各指标的获取方式如下:
- 最小/最大线程数:这两个属于ThreadPool的静态配置参数,没有内置的Windows性能计数器直接暴露。你可以在应用代码中调用
ThreadPool.GetMinThreads()、ThreadPool.GetMaxThreads()方法获取,也可以自行实现自定义性能计数器将这两个值上报到Windows性能计数器中持久化监控。 - 当前工作线程数:对应
.NET CLR LocksAndThreads性能分类下的# of current worker threads计数器,选择你的应用对应的进程实例即可查看实时数据。 - 当前IO线程数:对应
.NET CLR LocksAndThreads性能分类下的# of current IO threads计数器。 - 线程等待队列长度:对应
.NET CLR LocksAndThreads性能分类下的Current Queue Length计数器,统计所有等待ThreadPool调度的任务总数量。
小提示:IIS托管的ASP.NET应用对应的进程名为
w3wp.exe,多应用池部署的场景需要匹配对应应用池的进程实例,避免读取到其他应用的统计数据。
如果需要在代码中自动采集这些指标,直接引用System.Diagnostics命名空间下的PerformanceCounter类即可读取,不需要额外引入第三方依赖。
内容的提问来源于stack exchange,提问作者Janus Tøndering
相关产品推荐
相关产品推荐

