带有Nginx的fastcgi-mono-server比xsp4慢得多

我们开始在用mono-3.0.3编译的xsp4服务器上testing我们的MVC4应用程序,速度足够了,我们决定用nginx (1.2.6-r1)设置生产fastcgi-mono-server4 (版本2.11.0.0)。

加载一些JSON查询的单个查询在XSP4上花费了大约200ms,但Nginx在大约1.2s内提供查询,我想知道在哪里可以这么慢呢?

我遵循nginxconfiguration: http : //www.mono-project.com/FastCGI_Nginx和fastcgi-mono-server4使用套接字来侦听nginx。

你有什么想法如何logging一些时间戳,这将帮助我?

谢谢

首先,使用版本2.11.x是一个麻烦的保证。 11是一个奇数,这意味着它是一个不稳定的版本。

因此,应避免2.11.x并升级到3.x(x是偶数,即0或2)。

其次:如果您使用Mono 3.2.x而不是3.0.x,则默认情况下将使用新的垃圾回收器,我相信这会更快。

最后但并非最不重要,请注意一些HA和性能问题:

  1. 看看这个stackoverflow的答案知道如何避免“积压太深”的问题(由NGinx翻译为502)。
  2. 调用mono时使用–server标志(您可能需要在系统的mono-fastcgi-server脚本中对此标志进行硬编码)。 这个特性是在单声道3.2.3中引入的。
  3. 如果你仍然遇到不好的performance,可以尝试使用这个补丁来自己编译Mono( 这个补丁可能会包含在Mono 3.2.5版本中)。