.NET Core乱糊代码之”异步调差性能”指北
前言
故事要从好久之前说起,线上某服务从零到上线都是我撸的, 架构主要是.NET Core API + EF, 从最早的日活一千到现在日活几万....但是某个迭代开始发现,
这个Web API有一定几率在启动的时候接收到大量请求后堆积起来, 看日志显示请求进来了, 但是一直没有到逻辑代码或者数据库查询,
所有的请求看起来都是在等调度....IO读写操作, 基本排除外部因素
网络情况正常, 内网中没有奇怪的数据请求,不存在网络风暴之类的东西
发生问题前此时数据库连接数正常, 实例不断被重启后或者一直僵死中, 数据库连接数会不断增加,...至少算是一个能操作的事情, 这个时候就很傻了, 每次发布的时候都手动ab test一下还没有转入流量的实例,
尽可能预热一下数据库和这个HTTP管道.
这个时候真的是玄学现场, 太让我沮丧了....用上面的压测预热折腾了一个小时, 没有成功全部启动应用, 最后无奈先回滚了, 回滚后服务正常.
OK, 这个迭代的代码加剧了应用被打崩的情况.