如果您是使用.net或.net core平台编写服务时服务负载能力已经达到顶峰,而CPU并没有得到充分利用,看看这篇文章,那么或许你可以得到一些启发。
目录
- 1、问题现象
- 2、线程数不够
- 3、什么是线程池
- 4、什么是异步编程?
- 5、通常是什么导致阻塞?
- 6、我怎么知道ThreadPool缺少线程?
- 6.1、PerfView / threadTime收集
- 6.2、寻找增长的线程数。
- 6.3、查找阻塞API
- 6.4、主动出击
- 6.5、 解决方法:在ThreadPool中强制使用更多线程
- 7、小结
1、问题现象
有一个api网关,采用的是.net core 2.1开发,其并发量达到一定程度时再难以上升,此时分析瓶颈存在哪里,在之前已经有所猜测,此处也算是证实下猜想。\