有没有人能将IIS和.NET与Cherokee和Mono相提并论的性能数字?


8

我正在设置开发服务器,并希望将其设置为使用Mono服务ASP.NET页面。我打算使用Cherokee和Mono(http://www.cherokee-project.com/doc/cookbook_mono.html),想知道是否有人将基于Unix的堆栈与基于Windows的堆栈进行了性能测试。


我最后去了SuseGallery [1],快速搜索了Mono,发现JEOS Mono ASP.net [2]已经为我想要的设置了。我刚刚开始使用VirtualBox在Windows上进行一些ASP.net迁移试用。我只需要启动Apache并设置端口转发即可。[1]:susegallery.com [2]:susegallery.com/a/0uPadf/jeos-mono-aspnet
拉里·史密斯米尔

Answers:


7

在测试Mono / Linux与.NET / Windows工作负载时,您必须记住,不仅仅是运行时环境在起作用。

在某些方面,Linux的性能要优于Windows(对于同类C程序,大多数IO和网络操作往往更快)。同时,.NET具有更高级的垃圾回收器和更高级的JIT编译器。

对于类库,它实际上取决于您使用的代码路径。正如JacksonH在先前的文章中所说,您可以访问在一种实现中已优化的代码路径,而在另一种实现中未优化,反之亦然。

在ASP.NET工作负载上,您必须记住,默认设置会将所有传入的请求路由到单个“工作者”进程,mod_mono和Cherokee使用类似的方法:

许多HTTP服务器到一个mod-mono-server
(来源:mono-project.com

至少使用Apache,我们支持一种机制,您可以将应用程序工作负载分配给多个工作程序,这可以在高负载下提供帮助,因为它避免了任何进程内锁定,并为每个工作程序提供了一个完整的线程池来进行工作:

使用mod_mono将请求路由到其他ASP.NET主机
(来源:mono-project.com
有关如何配置此设置的详细信息,请参见:

http://mono-project.com/Mod_mono


7

这有点无答案。但是,这里没有真正的答案。不幸的是,这件事高度依赖于应用程序。您的应用可能会碰上Mono确实做得很好的事情,或者您可能正在大量使用实施不佳或有错误的东西。实际上,Mono比IIS慢/快X倍不是真正的情况。

我的建议是将您的应用程序部署在两个不同的EC2实例(一个Windows和一个Mono)上,然后在其中进行测试。如果您在Mono实例上发现了重大问题,请报告这些问题,我们将尝试改进。

综上所述,我可以从个人经验中告诉您Mono aspx确实表现出色。


其次-我使用Apache + mod_mono,一旦启动,它的性能就会很好。我唯一一次看到速度缓慢是在初始页面加载期间,但这在几乎所有情况(Rails等)中都是很常见的。
BR 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.