For diagnosing slow downloads from MS, set download to foreground
$conf=(get-wsusserver).GetConfiguration() $conf.BitsDownloadPriorityForeground=$true $conf.save()
Restart BITS to take effect (WSUS has a dependency, so will also restart). Set back to false after testing, obviously, else you may overload your connection.
AdamJ clean-up script – http://www.adamj.org/clean-wsus.html – sadly now commercial :(, yet another example of someone who has been given all the info by everyone else, created a simple, but useful script that so many have become reliant on, and then personal greed has set in.
Limit WID database memory use – http://www.stugr.com/2013/01/24/wsus-limit-sql-windows-internal-database-memory/ – essentially these commands from a cmd prompt:
osql -E -S \\.\pipe\Microsoft##WID\tsql\query
exec sp_configure 'show advanced option', '1';
reconfigure;
exec sp_configure;
go
Check for max server memory in output, likely to be massive such as 2Tb (output is in MB)
exec sp_configure 'max server memory', 2048;
reconfigure with override;
go
quit
This sets to 2GB (max server memory = 2048MB)