views:

1054

answers:

2

We have an ASP.NET project (40 or so Web forms, 50 tables, pretty standard IO stuff with care taken to minimize when possible) that will soon need to be deployed. There will be about 100 concurrent users on the system, but only about 20 at any one time will be pounding on it it. We'll be deploying it on Windows Server 2008, 32-bit initially.

When considering production server spec which should we worry more about, getting more cores and less memory (4 cores and 4mb, for example) or more memory and less cores (2 cores and 8mb)?

Would bumping up to Windows Server 64-bit help with memory utilization?

+3  A: 

32-bit Windows Server can only address ~3gb of memory. Get 64-bit, 2 cores and 4gb. Or if money isn't an issue, get 8 cores and 24gb. The point is to never guess. If you guess you will be wrong. Monitor the memory pressure and cpu load, and buy more/upgrade as necessary. It's impossible, and foolish, to try to guess what will be the performance bottleneck. The only way is to measure, measure, measure and respond according to that.

Rex M
Agreed. And memory is so cheap these days!
GateKiller
A: 

One important piece of information that is not included is how much data the databases are going to be holding and how much each user will be utilizing. That will determine how much cache you're going to want, and whether it will all fit in cache or if you're going to be hitting disk a lot more.

Utilization? Only if you're shooting for >3.5GB of ram. And with 20 simultaneous active users, you're going to want all 4 cores and a sizable cache, because the last thing you want is one active users data being flushed from cache to load another active users data, only to have to hit the disk to get the first users data when they take their next action, sending another active users data from cache... (read: thrashing).

cyberconte