【发布时间】:2020-12-06 09:00:20
【问题描述】:
我尝试将一些基于 .NET Core 3.1 构建的 Web API 移植到 Azure 应用服务(在 Linux 上)。早些时候,所有这些 API 都托管在 Azure 应用服务(在 Windows 上)中,但我想将它们移植到 Linux 环境,因为与它们相关的巨大成本收益。
但是,在移植它们并运行一些性能套件后,我发现 Linux 和 Windows 应用服务之间存在严重的性能差异。我原以为 Linux 应用服务的性能会提高或保持不变,但令我沮丧的是,性能实际上下降了。以下是部分结果:
+-----------------------------------------------+-----------+--------+---------+
| Operation | User Load | Linux | Windows |
+-----------------------------------------------+-----------+--------+---------+
| Cosmos DB Read | 50 | 600 ms | 60 ms |
+-----------------------------------------------+-----------+--------+---------+
| Simple Ping | 50 | 30 ms | 20 ms |
+-----------------------------------------------+-----------+--------+---------+
| 15 parallel calls to Azure Feature Management | 50 | 510 ms | 160 ms |
+-----------------------------------------------+-----------+--------+---------+
是什么导致 Linux 中的这种性能下降?它是 .NET Core 的东西吗,与 Linux 相比,Windows 的性能更好。如果是这样,这是否会在 .NET 5 或其他后续版本中获得地址?
【问题讨论】:
-
我找到了the blog about testing performance。测试结果好像和你说的相反。
-
如果可以的话,可以分享一下你的测试过程和代码吗?
标签: linux azure azure-web-app-service azure-app-service-plans