我有一个在Azure上的高负载部署:4个大实例每秒处理约300-600个请求。在正常情况下,“平均响应时间”为70到150毫秒,但有时可能会增长到200-300毫秒,但这完全没问题。
然而,每天一两次(不是在“高峰时间”),我在Web站点监视选项卡中看到这样的情况: 因此,每分钟请求次数显着下降,平均响应时间增长到3分钟,一段时间后一切恢复正常。
在这种“停机”期间,仅有0.1%的请求被丢弃(带有超时的Http服务器错误),其他请求只需等待队列并在几分钟后正常处理。然而,并非所有客户都准备好等待 :-(
内存使用率始终低于30%,CPU使用率仅高达40-50%。
我已经检查过什么:
1.超时请求的跟踪:它们在随机位置超时。
2.Azure Storage和其他组件的限流:根本没有限流。
3.我还尝试通过CloudFlare路由所有流量:并看到了相同的问题。
这些问题的原因是什么?我接下来该检查什么?
提前感谢大家!
更新1:BenV建议尝试了一个好方法,但不幸的是它没有显示出任何东西 :-( 我配置了每500k个请求的进程回收,并添加了工作节点,因此CPU利用率整天低于40%,但仍然出现停机。
然而,每天一两次(不是在“高峰时间”),我在Web站点监视选项卡中看到这样的情况: 因此,每分钟请求次数显着下降,平均响应时间增长到3分钟,一段时间后一切恢复正常。
在这种“停机”期间,仅有0.1%的请求被丢弃(带有超时的Http服务器错误),其他请求只需等待队列并在几分钟后正常处理。然而,并非所有客户都准备好等待 :-(
内存使用率始终低于30%,CPU使用率仅高达40-50%。
我已经检查过什么:
1.超时请求的跟踪:它们在随机位置超时。
2.Azure Storage和其他组件的限流:根本没有限流。
3.我还尝试通过CloudFlare路由所有流量:并看到了相同的问题。
这些问题的原因是什么?我接下来该检查什么?
提前感谢大家!
更新1:BenV建议尝试了一个好方法,但不幸的是它没有显示出任何东西 :-( 我配置了每500k个请求的进程回收,并添加了工作节点,因此CPU利用率整天低于40%,但仍然出现停机。
更新2: 项目使用ASP.Net MVC 4。