Asp.net保证响应时间

有没有人有任何关于如何编写需要保证响应时间的ASP.net应用程序的提示?

当处于通常会导致我们超过所需响应时间的高负载时,我们希望丢弃适当数量的请求,以便其余请求可以在最大响应时间之前返回.基于超过固定req / s的请求抛出是不可行的,因为还有其他外部因素可以控制响应时间,从而导致我们可以安全支持的最大rps随着时间的推移而大幅度地漂移和波动.

如果一些请求需要花费太长时间就可以了,但我们希望它们中的绝大多数都满足所需的响应时间窗口.我们希望“抛弃”最小或接近最小数量的请求,以便我们可以在分配的响应时间内处理其余请求.

它应该考虑ASP.Net排队时间,理想情况下是网络请求时间,但不太重要.

我们也喜欢做自适应工作,比如如果我们有足够的时间进行数据库调用,但如果我们的时间较短则进行一些计算.

谢谢!

最佳答案 具有保证响应时间的SLA需要一些工作.

首先,您需要花费大量时间来分析您的应用程序.您想要了解它在各种负载情况下的确切行为:轻,中,重,破碎……在进行此分析步骤时,在生产使用的完全相同的硬件/软件配置上完成它至关重要.来自一组硬件的结果与即使稍微不同的硬件组的结果无关.这不仅仅是服务器;我说的是路由器,交换机,电缆长度,硬盘(制造/型号),一切.甚至可以在机器,RAID控制器和循环中的任何其他设备上进行BIOS修订.

虽然分析确保工作负载的类型代表您将要看到的实际切片.显然,某些负载混合比其他负载混合更快.

我不完全确定你的意思是“扔出适当数量的请求”.听起来你想放弃这些请求……这在许多层面听起来都是错误的.这样做通常会导致SLA成为“中断”.

接下来,您将必须主动监视您的服务器以获得负载.如果负载水平在最大值的某个百分比范围内,则需要添加更多硬件以增加容量.

另一件事,内部监控结果时间只是其中的一部分.您还需要根据客户的位置从各个外部位置监控它们.

这就是你的应用程序.还有其他力量在起作用,例如您与Internet的连接.如果一个发生故障,您将需要多个具有主动故障转移的提供商…或者,如果可能,请使用可靠的云提供商.

点赞