当前位置: 首页 > 知识库问答 >
问题:

与Azure VM相比,Azure应用服务速度较慢

越源
2023-03-14

我有一个ASP。NET核心系统(基于NopCommerce框架)托管在Azure VM上(标准F8s\U v2大小)。应用程序运行非常平稳。平均响应时间约为200 ms,这是可以接受的。同样的应用程序托管在Azure应用程序服务(P2v2计划)上。速度明显较慢。平均响应时间约为500 ms。

我做了大量的监控分析:

  • Azure应用程序服务和VM上的CPU均较低。单个请求的CPU在应用程序服务上约为5%,在虚拟机上约为3%
  • 升级应用程序服务计划无效
  • VM和应用程序服务上都没有内存使用峰值
  • IO在VM和应用程序服务上几乎不存在
  • VM和App service都有自己的数据库。在试图弄清楚这种行为的细节时,他们两人都被调换了。行为上没有区别
  • 所有资源都托管在同一个区域上

没有什么真正表明这是应用程序服务上与资源相关的性能问题。

我在分析应用程序服务时得到了此分析器跟踪:应用程序服务分析

该应用程序具有内置的分析功能,使用MiniProfiler实现。可以在此处找到对VM和AppService上相同endpoint的调用的比较:VM vs App service profiling

是什么导致了应用程序服务速度的下降?还有什么值得检查的地方可以提供关于为什么响应时间不同的提示?

共有1个答案

百里意智
2023-03-14

这是应用程序托管方式的实际问题。项目设置将使用过时的AspNetCoreModule以及托管模型。强制它使用ASP. NET Core 2.2新的inProcess托管模型解决了这个问题。如果您对它运行速度更快的更复杂的细节感兴趣,您可以阅读这篇文章

 类似资料:
  • 问题内容: 它们看起来几乎一样,甚至是语法? 使用什么?或什么时候使用什么? 问题答案: 速度不再是真正活跃的开发。Freemarker是。 根据我的经验,Freemarker也更加灵活。

  • 我是PostgreSQL的新手,我面临着一个关于表函数性能的问题。我需要做的是相当于MSSQL中的存储过程。经过一些研究,我发现一个表函数是可行的,所以我举了一个例子,用plpgsql创建了我的函数。 通过比较执行时间,使用函数比直接调用查询慢2倍(查询在函数中完全相同)。 经过一点挖掘,我发现在函数中使用SQL语言可以大大提高执行时间(与调用查询的时间完全相同)。读了这篇文章后,我了解到plpg

  • 问题内容: 有没有人在编写比较两个REST服务的测试方面有任何技巧?我们这样做是作为回归测试的一种形式。 我希望按照以下方式做一些事情: 向两个服务发送“ / 1”的GET并比较结果 向这两个服务发送POST,然后比较结果 向两个服务发送一个PUT,并比较结果 这个想法是: 每个操作都发送到两个服务 结果应该相同 REST服务是用Java / Jersey编写的,因此使用它是理想的,但是人们发现有

  • JavaScript 有两种方式判断两个值是否相等。 等于操作符 等于操作符由两个等号组成:== JavaScript 是弱类型语言,这就意味着,等于操作符会为了比较两个值而进行强制类型转换。 "" == "0" // false 0 == "" // true 0 == "0"

  • 我正在使用tinkerpop3 gremlin服务器。 我执行一个简单的查询(使用标准RESTAPI)来获取顶点的边。 当有很多结果(大约2000-3000)时,查询很慢,超过20秒才能得到JSON-结果响应。 有趣的是,当我使用gremlin shell运行同一个查询时,大约需要1秒的时间来接收边缘对象结果! 我不确定,但我怀疑可能gremlin-server的JSON解析器(我正在使用Grap

  • 我正在尝试将ArrayList转换为Treemap,所以我编写了一个比较各种方法的基准: 1)并行流中的toMap 2)toMap在流中 3)流中forEach 主 大小为10_000的输出如下 “for loop”与预期一样是最慢的 回到正题,为什么当arraylist列表很大时,for each in parallel steam会失败? 运行i7 2670QM,因此线程池大小应为8