Solution Performance

Topics: User Forum
Feb 21, 2007 at 4:05 AM
Also just wondering if anyone has managed to do any performance tests on this solution. I installed this and and I ran a quick httperf on it and I haven't been able to really get anything better than around 15 requests per second on a machine with 1 GB of RAM on Win2k3. Is this about as good as it gets? Or am I doing something really wrong?
Feb 21, 2007 at 9:32 PM
Because of the "goat rope" this entire process is, I wouldn't count on superb performance. The problem is, that each ruby process that is spawned by isapifcgi.dll can really only handle one http request at a time (not a limitation of ruby but more a limitation of isapifcgi implementation).

So, if your server receives 4 simutaneous requests and isapifcgi.dll is set to spawn off 3 rubyw.exe script handlers (default setting for my installer), isapifcgi will need to spawn off another rubyw to handle the 4th request. There is a maxServers key in the registry (default is 6) and each time one of these guys is spawned there is obviously some overhead.

The timeout value is 600 seconds for the additional rubyw processes and is configurable in the registry as well.

You can increase the number of start processes in the registry for isapifcgi to limit the overhead of spawning new rubyw processes. I recommend reading up the documentation of isapifcgi (link is on the home page at the bottom). Hope this explains some things about how this works.