Windows vs Linux上的.net Core

Pie*_*sdb 14 asp.net iis nginx .net-core

ASP.Net Core可在Windows和Linux Docker容器上运行.考虑到Linux主机比Windows主机便宜,如果不需要完整的.Net框架,在IIS/Windows和Nginx/Linux上运行应用程序有什么好处?

Pul*_*Jet 17

Roberto Prevato的一项研究表明,最好在Linux(!)上运行它,至少对于ASP.NET Core.

结果与从通过有线连接到互联网的计算机产生负载的结果一致:在Linux和Docker中部署的相同ASP.NET Core应用程序比在Windows主机中部署的应用程序(在应用程序服务计划内部)快得多.这些新测试显示了Linux中托管应用程序的更强主导地位,尤其是在为更大的机构提供响应时.

他得到的结果的简短摘要:

每秒请求数:

Scenario        Linux   Windows  +% 
Hello World     646.6   432.85  +49.38%
1KB             623.05  431.95  +44.24% 
10KB            573.6   361.9   +58.5% 
50KB            415.5   210.05  +97.81% 
100KB           294.35  143.25  +105.48%
Run Code Online (Sandbox Code Playgroud)

响应时间:

Scenario        Linux   Windows  -%
Hello World     168.85  242.2   -30.28%
1KB             171.25  249.8   -31.45%
10KB            184.2   292.7   -37.07%
50KB            233.3   542.85  -57.02%
100KB           365.05  817.35  -55.34%
Run Code Online (Sandbox Code Playgroud)


Ter*_*Dev 3

没有明确的好处。这与为什么要在其他平台上运行rails、jboss 的论点相同。由于您运行的是同一个应用程序,因此无需考虑太多因素。您可能希望拥有 Windows 中的一些功能,例如 dns 缓存。如果您更喜欢使用网络侦听器,而不是 kestrel,但这在很大程度上取决于您正在做什么。

如果您确实关心您的 http 传输,或者 .net 将使用哪个时区数据库,那么您可以做出这样的决定。对于大多数用户来说,并没有什么大的好处。如果您希望使用 AD 登录,那么您几乎必须使用 Windows 和 IIS,因为您需要一台属于活动目录域的服务器。

请记住,Linux 确实有免费选项,但大多数对 Linux 的付费企业支持通常是相同的,甚至比 Windows 更贵。