gpt4 book ai didi

asp.net-mvc - .NET MVC 5 网站的 Azure 性能问题 - 延迟?

转载 作者:行者123 更新时间:2023-12-03 01:10:21 25 4
gpt4 key购买 nike

我们发现 MVC 5 网站的性能存在一些重大问题。当我在单个基本页面上以大约 15-20 个请求/秒的速度对我们的网站 (PAAS) 进行轻量级性能测试时,性能工具(我使用 JMeter 和 Visual Studio Enterprise 2015 RC)报告每个请求的响应时间约为 500 毫秒。此外,IIS 日志还报告每个请求大约 500 毫秒。请注意,在这些测试期间,我仅使用 1 个 S2 实例。

奇怪的是,Application Insights 报告这些请求的响应时间约为 150 毫秒,所以我“损失”了大约 350 毫秒。这些页面的响应很小,只有10KB左右,所以我真的不期望350ms用于数据传输等。

我还使用 System.Diagnostics.Stopwatch 添加了自定义日志记录,以 Hook 请求生命周期的各个阶段。看完this图中,我在自定义的 ControllerFactory.CreateController 方法中启动了秒表,并在 Controller.OnResultExecuted 方法中停止了它,我认为该方法涵盖了完整的请求。秒表的运行时间与 Application Insights 报告的响应时间大致相同这一事实也证明了这一点。我在这里错过了完全相同的 350 毫秒!

一些附加信息:- 我测试的页面是一个简单的页面,没有外部网络服务或数据库- 整个测试过程中CPU使用率保持较低水平,最高约30%- 该网站托管在西欧,据称是阿姆斯特丹。在本地测试时,我预计延迟会非常低,因为我住在 40 英里之外。- 我在 Azure 北欧进行了测试,结果相同

我感觉有些东西受到了限制,因为 CPU 很低,但响应时间很长。我不太了解 Azure,不知道它是什么以及在哪里。我会很感激每一个建议。谢谢!

最佳答案

经过进一步调试,似乎在构建某些服务和 Controller 时,我们会使用 WebConfigurationManager 读取应用程序设置。

事实证明,这在 Azure 上。由于您可以覆盖 Azure 管理门户中的硬编码配置设置,因此每次对设置的查找都会执行一些内部调用来查看此设置是否被覆盖。

现在,如果您的网站流量很少,并且您只为每个请求执行一次,那么这可能不是最大的性能问题,因为每次查找可能需要 15 毫秒。但是,如果您对每个请求执行 7 次(我们有各种 API、域设置的大量凭据,所有这些都是可配置的),并且您每秒有 100 个请求,那么,算一下。它会降低网站的性能。我们现在将这些设置写入一些单例设置对象,性能得到了显着提高。

这也解释了 CPU 低的原因,因为它正在等待某些外部调用完成。 CPU 没有执行任何操作。

关于asp.net-mvc - .NET MVC 5 网站的 Azure 性能问题 - 延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30581673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com