Sizing memory for Windows Server Systems in Small Businesses

Sizing memory is easy – but i’ve seen many people run into trouble with it and buying more ram than they can run, and lot’s of other troubles.

There are several limits to the amount of memory you can use, because of several factors. These factors are:

  • Hardware
  • Operating System
  • Application

When buying hardware from a distributor (and not preconfigured systems directly from the manufacturer like enterprises), you usually get a base memory of 1GB, in the form of 2x 512MB.

For smaller 1U machines with only 4 memory slots, the most economic configuration is thus 3GB (with an additional 2x1GB feature set) of memory, which as we later see is supported by all OS/Application combinations.

For bigger machines, with 8 or 12 memory slots, you can get a lot more RAM. 2x1GB is still somewhat cheaper than 2x2GB. At this point, OS and applications become a factor.

Microsoft has set the following limits for it’s Operating Systems:

  • Windows Server 2003 for Small Business: 4 GB
  • Windows Server 2003 Standard Edition: 4 GB
  • Windows Server 2003 Enterprise Edition: 64 GB
  • Windows Server 2003 Standard Edition x64: 32 GB
  • Windows Server 2003 Enterprise Edition x64: 1 TB

Source: KB889654

These are the constraints by Microsoft. However, there are additional constraints on the maximum amount of memory, inflicted by the architecture itself.

Even for full 4 GB on a single server, you might need to enable PAE by setting the /PAE flag in the boot.ini file – this is necessary because there are virtual address spaces used by the PCI-Bus and similar equipment in your server. Note that /PAE is supported on SBS and Standard Edition, though you can’t use more than 4 GB of physical RAM.

Accessing more than 4GB of memory on 32bit Platforms requires certain tricks, especially if you want to access more than 4GB of RAM in a single process.

This leads us to the next set of problem – application support.

For example, a single exchange server running with 64GB of memory will not really make use of it – sure, the excess memory can be used as a disk cache, but store.exe won’t be able to use more than 4GB of memory.

There are certain application which supports AWE, most notable Microsoft SQL Server. AWE allows a single process to access more than 4GB of memory, using even more tricks. These usually slow down performance a lot.

So, having more than 4GB of RAM only makes sense if the application you are running consists of multiple, independent processes. There are other considerations such as kernel memory, which mostly come into play with a terminal server environment (which i have no experience with).

For Small Business Server, 4GB is the maximum, and in my opinion also the minimum. A SBS Server with only 1 GB of memory will be very, very slow and swapping constantly. With 2GB, it will probably work fine. With 4GB, you have the maximum amount of memory supported, and the server will probably need it, giving you an extra speed boost. The most economic way for this is usually 4x512MB, 2x 1GB.

If you think you need more than 4GB of memory, enterprise edition is very, very expensive and can lead to other performance problems when using AWE. So, if you think you need more than 4GB, go for 64bit. Exchange 2007 even requires 64bit, in contrast, Exchange 2003 doesn’t even support 64bit.

Remember that 32bit Standard Edition supports 4GB, but the 64bit Standard Edition supports 32GB.

In closing, it’s not that difficult if you can wrap your head around all these limitations. Here are my general sizing rules:

  • Windows Server 2003 for Small Business – get 4GB, you will need them
  • Windows Server 2003 Standard – get 3GB if that’s enough, or 4GB if you need the extra Gigabyte
  • Windows Server 2003 Standard x64 – Decide how much you need according to application. 8GB is a good starting point
  • Windows Server 2003 Enterprise – Don’t consider them for a Small Business, too expensive and too much hassles

Hope this braindump help someone. I won’t be writing on Friday and Monday, because i don’t have to work then.

3 Comments

  1. Nicolas Jaouen:

    Hello Lukas,

    Do you know / expect new requirements in terms of minimum and recommended DRAM loading for the various versions of Longhorn (standard, entreprise, datacenter, web, x64 web) ?

    Regards,

    Nicolas

  2. Lukas Beeler:

    Longhorn will default to a 64bit OS, the 32bit OS has to be specially ordered, so this will mix things up a bit.

    I doubt that the supported amount for 32bit Longhorn OS will change, but only Microsoft knows that. For 64bit, i assume that the amount supported by Longhorn Standard will be 64GB (twice what x64 Standard has right now). The enterprise versions are already unlimited.

  3. Scott:

    Going to 64-bit servers made such a big difference in my business with 75 machines, I can’t believe we didn’t do it earlier. I’m moving a lot of desktops to 64-bit Vista now too, with awesome results!

Leave a comment