My company is upgrading the app/web server from Windows 2003 to Windows 2008 (mainly because hosting companies don't offer 2003 anymore, and we need new hardware to gain performance).

Our app is written in Delphi (CGI modules), and the database is (this is kind of embarassing) DBF files.

Our old server is:

  • Windows 2003 Web SP2 (IIS6) - 32 bit
  • 2 GB RAM
  • Intel Xeon CPU 3040 @1.86GHz (Dual Core)
  • 250 GB SATA RAID 1 hard drive

The new server is:

  • Windows 2008 Web R2 (IIS7) - 64 bit
  • 4 GB RAM
  • Intel Xeon CPU 3320 @2.50GHz (Quad Core)
  • 500 GB SATA RAID 1 hard drive

The app mainly needs high read speeds, since we have to secuentially loop over the tables to load the information (yes, we use indexes to find positions).

The production server load is normally below 5 requests per second (quite few), except when google is indexing (up to 10-20). Sometimes the requests take some time (searchs, sales listings...).

PROBLEM: We are having serious performance issues. The new server works fine, but requests now need as much as double the time to complete. The bad thing is that the 4 cores appear to be quite idle during execution.

I enabled 32 bit apps in the application pool. I have tried creating a web garden (with 4 worker processes), and launching 4 simultaneous, cpu intensive CGIs, but the old server still beats the new one. I have tried to increase the priority of the worker processes, it made no difference.

Does anybody have an idea of what can be happening, and what I can do to improve performance on the new server?

(besides rewriting our app, obviously)

Thanks in advance!


After much testing, we have reached the conclusion that there must be a restriction in how IIS treats CGI executables (possibly, penalizing disk access with security checks).

We tried launching console executables, that basically did the same than the CGIs (accessing the same FoxPro database), and the execution times were roughly the same (although they should have improved, but at least they were not worse).

Solution: Reinstall the new server with Windows 2003 Standard Edition.

Standard Edition (instead of Web Edition) allows Windows 2003 to use all four cores, and the 4GB of RAM. Windows 2003 and IIS6 don't penalize our CGI's. The execution time for a single CGI is now around 30% less than on the old server. Plus, the 4 cores allow us to handle the double of concurrent CGI's.

Thanks anyways!

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.