Asp.net 保证响应时间

标签 asp.net performance scaling

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

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

如果一些请求花费的时间太长也没关系,但我们希望其中的绝大多数都能满足所需的响应时间窗口。我们希望“丢弃”最少或接近最少数量的请求,以便我们可以在分配的响应时间内处理其余请求。

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

我们也很乐意做适应性工作,例如,如果我们有足够的时间,则进行数据库调用,但如果我们的时间较短,则进行一些计算。

谢谢!

最佳答案

具有保证响应时间的 SLA 需要做一些工作。

首先,您需要花费大量时间来分析您的应用程序。您想要准确了解它在各种负载情况下的行为:轻、中、重、压碎。在执行此分析步骤时,至关重要的是在完全相同的硬件/软件配置上完成 生产使用。一组硬件的结果与另一组稍微不同的硬件的结果没有影响。这不仅仅与服务器有关;还与服务器有关。我说的是路由器、交换机、电缆长度、硬盘驱动器(品牌/型号),一切。甚至是机器、RAID Controller 和循环中任何其他设备上的 BIOS 修订版。

在分析时,请确保工作负载类型代表您将看到的实际部分。显然,某些负载组合的执行速度比其他负载组合更快。

我不完全确定“抛出适当数量的请求”是什么意思。听起来你想放弃这些请求……这在很多层面上听起来都是错误的。这样做通常会将 SLA 视为“中断”而终止。

接下来,您将必须主动监视服务器的负载。如果负载水平达到最大值的一定百分比,那么您需要添加更多硬件来增加容量。

另一件事,内部监控结果时间只是其中的一部分。您还需要从不同的外部位置监控它们,具体取决于您的客户所在的位置。

<小时/>

这就是您的应用程序。还有其他因素在起作用,例如您与互联网的连接。您将需要多个具有主动故障转移功能的提供商,以防其中一个提供商出现故障……或者,如果可能的话,选择可靠的云提供商。

关于Asp.net 保证响应时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5489248/

相关文章:

asp.net - ASP.Net MVC4 错误处理何时起作用?

c# - 将字典从 Ajax 传递到 C# 代码隐藏

php - ASP.net 与 PHP(选择什么)

iphone - 核心动画缩放速度异常缓慢?

javascript - 使用 JavaScript 动态创建页面内容比加载不同页面更快吗?

html - 改进极慢的 Codeigniter 网站的方法

python - 二维 numpy.take 快吗?

sql - 聚集键查找成本高

algorithm - 一种根据比例重新计算坐标线上标记的算法

android - 如何在 Android 上禁用网页缩放/缩放?