Sunday, May 6, 2018

Maximum Supported CPU on Windows Server 2003

Even though Windows Server 2003 has gone into end of support since July 2015, I still find their existence in my customer environment. Last week, a performance issue raised by one of my customer, where it related with application running on Windows Server 2003. The application just migrated from physical to virtual about 2 weeks before the application team observed slower performance during end of month process. When migrated, they changed the configuration from 2 CPU socket x 4 cores/socket into 4 CPU vSocket x 4 vCores/vSocket. Related to that change, my first thought, do we hit any maximum CPU limit? What is the maximum CPU on Windows Server 2003? This article is a self note about maximum CPU supported on Windows Server 2003.

Remember that Windows Server 2003 released in the era where the standard is single core CPU. Looking at the official document from Microsoft such as this document shows the supported Symmetric Multiprocessing (SMP) each edition of Windows Server 2003. For instance, Windows Server 2003 Standard Edition support 4-way SMP. Now the question is what’s defined as 4-way SMP? I found this VMware kb article which says that 4-way SMP means 4 CPU socket (or 4 vSocket in vSphere environment).

Quote from VMware kb article.
“Some operating system SKUs are hard-limited to run on a fixed number of CPUs. For example, Windows Server 2003 Standard Edition is limited to run on up to 4 CPUs. If you install this operating system on an 8-socket physical box, it runs on only 4 of the CPUs.”

This supported feature brings an important implication to your virtual hardware configuration. You need to configure virtual socket and cores per virtual socket of your Virtual Machine correctly when you create a Windows Server 2003 VM which need to have more total cores compare to its maximum supported SMP. For instance, Windows Server 2003 Standard Edition with maximum 4-way SMP, when you requires let’s say 8 cores, you’ll need to configure your virtual hardware to have:
  • 2 virtual socket x 4 cores per virtual socket, or
  • 4 virtual socket x 2 cores per virtual socket, but you cannot configure it as
  • 8 virtual socket x 1 cores per virtual socket.
Refer to the above VMware kb article on how to configure it within your vSphere environment.

Now the next big question is whether there’s a limit of total cores supported on Windows Server 2003? I understand that there’s a limit for the supported CPU socket, but with  the availability of one CPU with very large number of cores per socket, will it be supported? While the above references are kind of easy to find, this one is hard and I only got it after a friend point it out and it’s only a statement on the notes, not clearly shown on the article title. The document is here and the statement are:
"x86-based versions of Windows Server 2003 that are running on a computer that uses a multicore processor or a hyper-threading processor support a maximum number of 32 logical processors."
"x64-based versions of Windows Server 2003 that are running on a computer that uses a multicore processor or a hyper-threading processor support a maximum number of 64 logical processors."

Back to the case above, it is clear the CPU changes still supported and parallel investigation by the application team found out that the issue is not because of the application move from physical to virtual environment. 

Last note. I haven’t find any other more direct supporting document or which states otherwise, so for now I’ll stick to the above. Really appreciate if you can let me know if you have other supporting statement by leaving in the comment box below. Thanks for reading!

No comments:

Post a Comment