The Delivery Optimization Service (DOSvc) provides another Peer To Peer technology from Microsoft. Included with the release of Windows 10, DO is mostly used for downloading updates from Microsoft Update servers directly to PCs that are configured to use it. It’s also responsible for grabbing content from the Windows Store too.
Windows Update now uses DO as the default download mechanism (instead of good old BITS), and the latest Group Policy templates for DO
let you configure all kinds of parameters related to bandwidth, cache size and behaviour. But it has always been a bit tricky to test, or to see how it was performing – until the latest Windows 10 (1703) release popped up this week.
Windows 10 (1703) contains 2 brand new PowerShell cmdlets for Delivery Optimization, which immediately opens the door to the ‘black box’ that we were faced with previously. Awesome!
So, first up is Get-DeliveryOptimizationPerfSnap. No prizes for guessing what that one is intended for. It provides the 20,000ft view of DO on your machine, so how much content was downloaded, uploaded (if your PC is configured as a peer for internet peering) etc. Run it up and here’s what you get:
Not bad, but add the -verbose switch and you see a little more..
So in the screenshot above you can see that we downloaded some files, how fast we got them, the number of peers involved etc. Pretty nice huh? Well it’s a decent start!
Second up is Get-DeliveryOptimizationStatus, which drills down into the DO cache itself and provides some stats as to how each file was delivered and more.
The above results are returned as objects, which of course means that you can format them into a nice list:
Lovely! At last we can see what’s in the cache and where it came from. Of course it would be nice to have the filename at some point, and you can get that with our StifleR Content Management solution which can Bandwidth manage and monitor all your DO downloads.
Want to give it a spin? Best way to test this is to grab something from the Windows Store (Asphalt 8 is a good free one) and then fire up the cmdlets above, as they only return stuff when DO is actually doing something.