与 Azure VM 相比,Azure 应用服务速度较慢
Azure App Service slow compared to Azure VM
我有一个 ASP.NET 核心系统(基于 NopCommerce 框架)托管在 Azure VM 上(标准 F8s_v2 大小)。该应用程序运行非常流畅。平均响应时间约为 200 毫秒,这是可以接受的。完全相同的应用程序托管在 Azure 应用程序服务(P2v2 计划)上。它明显变慢了。平均响应时间约为 500 毫秒。
我做了很多监控分析:
- CPU Azure 应用服务和 VM 上的电量不足。单个请求 CPU 在 App 服务上获得大约 5%,在 VM 上获得大约 3%。
- 升级应用服务计划效果为零。
- VM 和应用服务上都没有内存使用峰值
- IO 在虚拟机和应用程序服务上几乎不存在。
- 虚拟机和应用服务都有自己的数据库。在试图找出这种行为的细节时,他们两个都被交换了。行为没有区别。
- 所有资源都托管在同一区域。
没有任何迹象表明这是应用服务上与资源相关的性能问题。
我在分析应用程序服务时得到了这个分析器跟踪:
App service profiling
该应用程序内置了分析功能,使用 MiniProfiler 实现。可以在此处找到对 VM 和 AppService 上相同端点的调用比较:VM vs App service profiling
什么可能导致应用服务速度变慢?还有什么值得检查的,可以提供有关为什么响应时间不同的任何提示?
这种托管方式的实际问题。项目设置将使用过时的 AspNetCoreModule 以及托管模型。强制它使用 ASP.NET Core 2.2 新的 inProcess 托管模型解决了这个问题。如果您对运行速度更快的更复杂细节感兴趣,您可以阅读 this
我有一个 ASP.NET 核心系统(基于 NopCommerce 框架)托管在 Azure VM 上(标准 F8s_v2 大小)。该应用程序运行非常流畅。平均响应时间约为 200 毫秒,这是可以接受的。完全相同的应用程序托管在 Azure 应用程序服务(P2v2 计划)上。它明显变慢了。平均响应时间约为 500 毫秒。
我做了很多监控分析:
- CPU Azure 应用服务和 VM 上的电量不足。单个请求 CPU 在 App 服务上获得大约 5%,在 VM 上获得大约 3%。
- 升级应用服务计划效果为零。
- VM 和应用服务上都没有内存使用峰值
- IO 在虚拟机和应用程序服务上几乎不存在。
- 虚拟机和应用服务都有自己的数据库。在试图找出这种行为的细节时,他们两个都被交换了。行为没有区别。
- 所有资源都托管在同一区域。
没有任何迹象表明这是应用服务上与资源相关的性能问题。
我在分析应用程序服务时得到了这个分析器跟踪: App service profiling
该应用程序内置了分析功能,使用 MiniProfiler 实现。可以在此处找到对 VM 和 AppService 上相同端点的调用比较:VM vs App service profiling
什么可能导致应用服务速度变慢?还有什么值得检查的,可以提供有关为什么响应时间不同的任何提示?
这种托管方式的实际问题。项目设置将使用过时的 AspNetCoreModule 以及托管模型。强制它使用 ASP.NET Core 2.2 新的 inProcess 托管模型解决了这个问题。如果您对运行速度更快的更复杂细节感兴趣,您可以阅读 this