使用Nginx托管的Web应用程序对mono-fastcgi-server4的首次浏览器请求造成巨大延迟

时间:2015-01-29 20:13:14

标签: asp.net-mvc-3 nginx mono xsp fastcgi-mono-server

我们正在使用单声道版本3.10.0(来自$ mono --version)和Nginx(1.6.2)以及mono-fastcgi-server4来托管在Debian jessie linux(ARM上运行的ASP.Net MVC3网络应用程序) - 覆盆子Pi)。

基本上我们似乎遇到了与此问题中描述的问题相同的问题: Huge delay on first browser-request to Mono XSP hosted web-application

当来自浏览器/网站访问者的第一个请求成为mono-fastcgi-server使用所有CPU时,它可以获得最多120秒,直到网页显示在webbrowser中。每次启动/重新启动网络服务器后都会发生这种情况。

据我所知,到目前为止,如果您在Windows服务器上使用IIS托管您的网站,这是非常正常甚至相同的。主要区别在于Windows服务器更快......

为了最大限度地减少启动时间,这是我已经尝试过的:

  1. 使用"发布网站"将我的剃须刀视图预编译到dll中Visual Studio中的功能。这项工作到目前为止,但似乎没有显着减少启动时间。

  2. 接下来我遇到的是 AOTING (提前编译)我的dll在bin文件夹中(参见http://www.mono-project.com/docs/advanced/runtime/docs/aot/)我使用了' mono --aot file.dll`预编译我的程序集。再次没有性能提升。

  3. 然后我发现你当然也可以 AOT你系统上的所有库(在这里找到:http://www.mono-project.com/docs/advanced/aot/)使用这些命令:

    mono --aot /usr/lib/mono/1.0/mscorlib.dll 
    for i in /usr/lib/mono/gac/*/*/*.dll; do mono --aot $i; done        
    

    这花了相当长的时间在树莓上,但是 - 再次 - 结果相同。

  4. 我做错了什么或遗漏了一些明显的东西?

    前面提到的问题的作者在他关于延迟的最后评论中说:

      

    它是由生成和编译不能的剃刀视图引起的   但是要预先编译。这些文件被编译到/ tmp / ...这是   映射到嵌入式设备上的内存,因此丢失   重启。最糟糕的是,每次重新启动XSP网络服务器之后   文件将被编译到/ tmp的新子目录中。这条路   每次启动XSP时都会重新编译剃刀视图。

    我想是的 无论使用XSP4,mono-fastcgi-server以及使用Apache时可能还有mod-mono,似乎对我来说都是一样的。 (有什么不足为奇,因为我认为它们都是基于XSP的 - 但也许我错了......)

    现在提到的问题是从2011年开始...有没有人知道是否有解决方案让网络服务器使用这些预编译文件?

    我感谢任何提示!

0 个答案:

没有答案