What kind of performance can one expect from Microsoft IIS/VB.NET?
Folks:
I’d like to spec out the required front-end server hardware for a database application with the following characteristics:
- Oracle server in the back end with at least 30 CPUs (existing machine; not sure how many cores in each CPU) and a lot of RAM
- Microsoft IIS/VB.NET Active Server Pages for the front-end computers (with load balancer)
- typical user session includes roughly the following workflow (let’s say 6 pages total)
- authenticate
- query Oracle to get enough information to build a form
- upon receiving the submitted form, send as many as 30 insert statements to Oracle
During a peak period we could conceivably get as many as 45,000 users logging in during a 30 minute period so that’s 270,000 pages to be served within 30 minutes or roughly 150 pages per second (corresponding roughly, perhaps, to the peak load on a server handling 4.5 million pages per day with a slightly uneven demand).
Let’s assume that Oracle is sufficiently well tuned and supported by hardware that it responds to all of these queries and transactions very quickly and does not become a bottleneck. (I recognize that this is a big assumption, but I would like to treat any Oracle issues in a separate posting.)
Here are my questions:
- what is the best way to configure IIS/.NET to maximize database performance? The database won’t be doing much else during these peak periods and my assumption is that there is no advantage to having more simultaneously connected Oracle users than the number of CPU cores on the Oracle server. Does that make sense?
- what kind of load can a $2000 Windows server support? The real work in this application is being done by Oracle on the monster Unix box in the middle. So all that the Windows server would have to do is interpret the Active Server Pages, manage a pool of database connections, and send complete pages back to users via HTTPS (note the SSL component). How many SSL pages per second would you expect the machine to be able to deliver? [For concreteness, I priced up a Dell R510 with dual Intel Xeon E5630 (2.5 GHz; 8 cores total from the two chips) and 16 GB of RAM. It came out to $2000 (admittedly with no disk or OS, but I guess you can’t have everything for $2000!). Anyway, let’s assume 8 cores and 16 GB of RAM.]
- Is it easy to configure the latest version of IIS/.NET to open no more than, say, 8 connections to the DBMS?
Thanks in advance to the Windows/IIS/ASP.NET heroes who answer!
[Note: This was edited down from a posting that had some distracting stuff about tuning Java, which resulted in a very unfocused discussion. I have had the moderator remove the non-IIS/ASP comments and will save them for a later posting regarding Oracle/Java.]
Full post, including comments