Microsoft’s official system requirements are a good starting point, however, they don’t give you the full picture. Let’s look at this one by one.
Processor: 1.4 gigahertz (GHz) x64 processor (2 Ghz or faster is recommended)
So, 1.4-2.0 GHz is already in play by pretty much every single processor out there for any system that was built within the last 10-15 years. You’d be hard pressed to find a system that is less than 1.4 GHz. What Microsoft hasn’t done in this specs sheet is factor in the multi-core, hyper-threading and virtualization techniques out there and created recommended specs for those. WSUS is a CPU intensive service in comparison with RAM. When in a virtual environment (we should all be thinking virtual as a standard and physical only when there’s a business need – and we’ve never seen a need for the WSUS services to be on physical), we at AJ Tek recommend that you use at least as many vCPUs as the processor has cores and a maximum of as many vCPUs as the processor has in threads but take care not to cross CPUs on multi-processor systems. So taking an example that shows what we mean, an Intel Xeon E5-2690 has 10 cores and 20 threads that it can use. In this case, you would want to assign 10-20 vCPUs for the virtual machine that holds WSUS, and if the system was a multi-processor system with 4 processors, you’d still want to assign a maximum of 20 vCPUs so that you don’t cross into using the other CPUs. This is a guideline for physical systems, not ones in the cloud like Azure or AWS where you have to pay for virtual processors.
Memory: WSUS requires an additional 2 GB of RAM more than what is required by the server and all other services or software.
2 GB more than what is used by the OS is very little RAM, however, as mentioned above, WSUS is more CPU intensive in comparison with RAM, so if you are following the guidelines above with CPU, your system can process more faster freeing up RAM faster. We recommend for a smaller outfit that you allocate 4 GB of static RAM for a dedicated WSUS server. Static, in regards to virtual machines is preferred if you have a small outfit as the VM doesn’t have to allot resources to growing and shrinking RAM. If you have another set of services on the server, increase the RAM accordingly. If this is a larger implementation, dynamic RAM with a minimum of 8 GB RAM is adequate.
Available disk space: 10 GB (40 GB or greater is recommended)
Let’s be real. These numbers are ridiculous. Ridiculous because most people who are running WSUS will be storing updates locally. The 10 GB minimum is a great starting point for WSUS servers that are NOT storing updates locally as it will just be storing a database that holds the WSUS metadata. 40 GB or greater, in actuality, covers Microsoft with the ‘or greater’ clause. With a single client OS and a single Server OS and nothing else but security and critical updates, it is possible to come in at less than 40GB – so long as your system is clean, optimized, and maintained. Realistically, a data store of 85-150 GB is average for a business as long as it is maintained with all classifications checked with only the products checked that are in your network. If it is not maintained, we’ve seen it grow to well over a terabyte – a terabyte that easily can be recovered if you WAM your server.™
Network adapter: 100 megabits per second (Mbps) or greater
1 Gbps or greater should really be used (on a 1 Gbit or greater switch port) as these days 100 Mbit in most places is relatively cheap to upgrade to gigabit speeds.
Application Pool Settings: This is defaulted to 1.8GB by Microsoft.
Microsoft never put this in their guide and instead defaulted this value to 1.8GB. Back when WSUS was created, and all through the years, 1.8GB was adequate until about 2013. This is about the time when it started to get really impactfull on larger installations, and started to become problematic. This default value is too low and will crash the WSUS MMC consistently. We recommend a step-based setting. Initially set it to 4GB. If you still experience issues, set it to 8GB. If you still experience issues, set it to 0 which is unlimited. If you have WSUS Automated Maintenance (WAM) © installed, then it’s easy to see and set your application pool memory. Use the WAM Shell (Windows Menu > Programs > AJ Tek > WSUS Automated Maintenance > WAM Shell) to check what the current memory level is by running: *AS OF RELEASE 2021.07*
Get-ApplicationPoolMemory -Name WsusPool
If it is less than 4GB, set it to 4GB:
Set-ApplicationPoolMemory -Name WsusPool -NewMemoryValue 4096
If it is 4GB or more and less than 8GB, set it to 8GB:
Set-ApplicationPoolMemory -Name WsusPool -NewMemoryValue 8192
If it is 8GB or more and less than 12GB, set it to 12GB:
Set-ApplicationPoolMemory -Name WsusPool -NewMemoryValue 12288
If it is already 12GB or higher, set it to unlimited:
Set-ApplicationPoolMemory -Name WsusPool -NewMemoryValue 0