C# 在Linux上使用.NET/Mono来提供大量web服务,这是个好主意吗?

C# 在Linux上使用.NET/Mono来提供大量web服务,这是个好主意吗?,c#,linux,mono,C#,Linux,Mono,我们有一个web服务,它可以提供相当高的流量,帮助您根据收到的电子邮件确定首选联系人 该服务最初是在C#/.NET中实现的,目的是利用我们已经在Windows主机上运行的一些代码。此服务不使用ASP.NET,但它是一个简单的C#服务,使用.NET中的基本HTTP侦听器 服务运行正常,但偶尔MONO会完全阻塞并停止响应任何请求。性能还可以,但不是很好,我们花了大量时间来研究MONO CLR和Windows CLR之间的区别。我必须承认,我来自Java背景,服务器端的生态系统似乎比Linux上的MO

我们有一个web服务,它可以提供相当高的流量,帮助您根据收到的电子邮件确定首选联系人

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

服务运行正常,但偶尔MONO会完全阻塞并停止响应任何请求。性能还可以,但不是很好,我们花了大量时间来研究MONO CLR和Windows CLR之间的区别。我必须承认,我来自Java背景,服务器端的生态系统似乎比Linux上的MONO生态系统要大得多


因此,现在,我正在寻找在Linux上使用Mono来提供高流量web服务的示例和个人经验。

不知道这是否有助于解决您的问题,但您可以尝试运行随附的web服务。

对于高容量性能调整,你经常需要考虑下面的部分

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

正如所描述的@yojimbo87,使用最新的Mono构建可以帮助从框架级别提高性能。但是,您还需要了解操作系统和web服务器,看看是否有其他调优方法。

您可能需要定义“高容量”。你是说每天有数百个请求吗?几千?数百万?每个群集每天有400万到500万个请求。我们已经有了一种分片机制,可以将我们的用户群分成不同的集群。但是我们的目标是每天每个集群处理400万到500万个请求。很好的建议,我们现在使用的是2.6.4。2.8的总体状况如何。这里没有提到:。如果你想拥有最先进的Mono版本,我建议你要么使用Novell()直接提供软件包的操作系统,要么使用源代码构建的操作系统。2.8版应该很快发布(几天或几周)。我有git源代码的mono版本(8月30日下载),mono运行时版本是2.8.1。如果您使用的是Ubuntu,那么最好的选择可能是并行mono环境,或者从daily tarball包构建它。