使用Linux上的.NET / Mono来提供高容量的Web服务,一个好主意?

我们有一个相当大stream量的networking服务,可以帮助您根据您收到的电子邮件找出您的首选联系人。

这个服务最初是在C#/ .NET中实现的,以便利用我们已经在Windows主机上运行的一些代码。 此服务不使用ASP.NET,但它是使用.NET的基本HTTP侦听器的简单C#服务。

该服务正在执行,但偶尔MONO将完全阻止并停止响应任何请求。 性能是好的,但不是很好,它接近我们花费大量的时间来计算MONO CLR和Windows CLR之间的差异。 我必须承认,我来自Java背景,似乎服务器端的生态系统比Java上的MONO生态系统在Java方面更大。

所以现在,我正在寻找使用Linux上的Mono来服务于高stream量Web服务的例子和个人经验。

不知道它是否有助于解决您的问题,但您可以尝试在新的垃圾收集器附带的单声道2.8上运行您的Web服务。

对于大容量性能调优,您经常需要考虑以下几个部分

  • 操作系统设置(特定于TCP / IP)
  • Web服务器级别设置
  • 框架级别设置(单一特定)

像@ yojimbo87所描述的那样,使用最新的Mono构建可以帮助从框架级别突破性能。 但是,您还需要了解操作系统和Web服务器,以查看是否有其他调整方法。