Is Rails on IIS dead?

The performance difference is in startup, not execution. Code load and reload (during dev) slower on Windows than Linux, and is due how Ruby C code is implemented.

Once the application starts performance is very good.

I've blogged about my presentation at RubyConf Argentina: http://blog.mmediasys.com/2011/11/26/rubyconf-argentina-and-fenix/ (Sorry, slides are in spanish)

And someone blogged about the work I mention there before:

Cheers,

Pieter Hugo wrote in post #1036832:

Dont know about IIS but running rails on Windows is dog slow. I develop on a Windows box and deploy on Linux and the speed difference is marked. Have heard the same from others.

Pieter Hugo

I got a blank Rails project up and running and I noticed it takes at least 30-60 secs to load up the hello page on an idle server, sometimes much longer and this delay is highly variable. This is just crazy. From my research via Google it does not appear to be just an IIS problem either, although its apparently much worse on IIS. I have also discovered that there are complaints about ruby being slower by orders of magnitude compared to other scripting languages, rails performance being generally poor and an apparent self-defeating reluctance by the developpers to support rails properly on the worlds most popular commercial platform. This is a great shame, since the potential for development appears to be huge if the hype is to be believed but the above problems appear to be an obstacle to takeup.

I still need to understand terms such as rack, passenger, mongrel, webrick etc and where they fit in but I'm already thinking of abandoning rails. However, before I do that, I am going to test it for comparison on Apache for Windows.

Pieter Hugo wrote in post #1036832:

> Dont know about IIS but running rails on Windows is dog slow. I develop > on a Windows box and deploy on Linux and the speed difference is marked. > Have heard the same from others.

> Pieter Hugo

I got a blank Rails project up and running and I noticed it takes at least 30-60 secs to load up the hello page on an idle server, sometimes much longer and this delay is highly variable. This is just crazy. From my research via Google it does not appear to be just an IIS problem either, although its apparently much worse on IIS. I have also discovered that there are complaints about ruby being slower by orders of magnitude compared to other scripting languages, rails performance being generally poor and an apparent self-defeating reluctance by the developpers to support rails properly on the worlds most popular commercial platform. This is a great shame, since the potential for development appears to be huge if the hype is to be believed but the above problems appear to be an obstacle to takeup.

Please see my previous response on this subject:

https://groups.google.com/group/rubyonrails-talk/msg/44eedbb72013d8d0

The first request, which loads the code in memory will be slow, even slower in development mode due code reload and because loading code in Windows is slow (again, see my previous response)

I still need to understand terms such as rack, passenger, mongrel, webrick etc and where they fit in but I'm already thinking of abandoning rails. However, before I do that, I am going to test it for comparison on Apache for Windows.

Will not make a difference, please see my previous comment.

At this time, if you have the alternative to implement your application in other than IIS or WIndows, go to Linux and use 1.9.3 + Passenger and Nginx.

Pieter Hugo wrote in post #1036832:

Dont know about IIS but running rails on Windows is dog slow. I develop on a Windows box and deploy on Linux and the speed difference is marked. Have heard the same from others.

Pieter Hugo

I got a blank Rails project up and running and I noticed it takes at least 30-60 secs to load up the hello page on an idle server, sometimes much longer and this delay is highly variable. This is just crazy. From my research via Google it does not appear to be just an IIS problem either, although its apparently much worse on IIS. I have also discovered that there are complaints about ruby being slower by orders of magnitude compared to other scripting languages, rails performance being generally poor and an apparent self-defeating reluctance by the developpers to support rails properly on the worlds most popular commercial platform. This is a great shame, since the potential for development appears to be huge if the hype is to be believed but the above problems appear to be an obstacle to takeup.

I still need to understand terms such as rack, passenger, mongrel, webrick etc and where they fit in but I'm already thinking of abandoning rails. However, before I do that, I am going to test it for comparison on Apache for Windows.

You should file a bug report with Microsoft asking them to create ruby/rails cgi/gateway to deploy applications via IIS. Maybe the world's most popular commercial platform should learn to support middleware other than their own.

Is Microsoft still funding ironruby?

Fred

No, its over.

Where I work we are a MS shop but I got ROR in there. I did get my ap running on a win 2k with apache. I actually had .asp and ROR apps running on the same box. My ROR app was slow. I was able to spin up a Ubuntu VM and it ran faster. When I showed that I was BBD they liked that. Showing them my method of testing and building they got comfortable with it. Now we are rewriting one of our enterprise apps in ROR. Communication was the key and it didn't happen over night. I feel lucky.

I never had to use the "but your iPad isn't a windows product."

Good luck. Keep pushing. Show the managers how it will help them. All the gems you can use to save time to write apps. Saving time = spacing money right?

Done rambling.

Cheers, John

John,

I am in the same boat. It looks like IIS is a poor choice.

If we replace IIS with Apache, would the speed problem persist?

Paul

It did sped it up. I actually had ISS and Apache serving pages on the same box. I also got nginx to run on it. Seemed flakey. This is also two years ago. My ISS app was used to check what is available to rent by our sales team. Worked fine. I wouldn't try a heavy traffic site on it.

Like I said it's been a while but I might have some posts on what I did http://johnivanoff.blogspot.com I sure have some files laying around too. Any questions let me know.

Cheers, John

This seems like a cruel joke to have to constrain RoR, or any modern web framework to IIS. If your company are concerned about rails implementations not being "enterprise" enough, then JRuby comes to the rescue - coupling the ease of rails with the enterprise power of the JVM - possibly worth a look.

Apache + Passenger will be much quicker than IIS for running Rails, as Passenger was designed to do it, unlike IIS. If you're waiting 30sec+ for first page load though, something else is wrong - if I take a deep breath go back to windows, it takes around 5sec here with a modern CPU and MRI1.9.2.

John Maxwell wrote in post #1037800:

This seems like a cruel joke to have to constrain RoR, or any modern web framework to IIS. If your company are concerned about rails implementations not being "enterprise" enough, then JRuby comes to the rescue - coupling the ease of rails with the enterprise power of the JVM - possibly worth a look.

Oh yes, because IIS is a piece of brachiosaurus bond, found by Microsoft somewhere near Silicon Valley :slight_smile: Funny though, ASP.NET and Node.js on IIS make Rails a sad joke, both being modern-shmodern all right.

Apache + Passenger will be much quicker than IIS for running Rails, as Passenger was designed to do it, unlike IIS. If you're waiting 30sec+ for first page load though, something else is wrong - if I take a deep breath go back to windows, it takes around 5sec here with a modern CPU and MRI1.9.2.

I’m not sure Apache was designed for Rails either. Passenger does all the job. But it’s not the fastest solution! We did several performance tests, comparing IIS (with Helicon Zoo), Apache and Nginx on both Windows and Ubuntu. The first place took Nginx+Thin on Ubuntu. With little difference there was IIS+Helicon Zoo. Apache+Passenger took 3rd place. Other combinations were worse.

Well, 2—3 years ago there was a gap between Ruby developers on Windows and Linux/Mac. But there isn’t any more. Windows actually gets much more attention by both MRI and gems developers. I can assure you, IIS is robust and mature web-server and the platform is ready to host Ruby applications.