Many of you have had a chance to learn about the available configuration options for Delivery Optimization in Windows 10, and have considered the settings that would be the best fit for your organization’s network topology. When it comes time to test the settings you’ve selected, you probably wonder, “How do I best evaluate the configuration I put in place to determine how well it’s working?” Thankfully, there are multiple ways to monitor Delivery Optimization performance.
Evaluating performance at the device level
Windows PowerShell cmdlets
Beginning in Windows 10, version 1703, we added Windows PowerShell cmdlets to help you analyze Delivery Optimization usage and see what’s happening behind the scenes. Simply start a download of an app from the Microsoft Store (while it depends on your configuration, any app larger than 100 MB will typically suffice), open an elevated PowerShell prompt, and run the following cmdlet:
Get-DeliveryOptimizationStatus | FT
As you can see from the screenshots above, FT formats the output nicely, but it can also truncate a few columns that just don’t fit within the screen width, so be sure to also run the cmdlet once without the formatting to see all the information available about the particular file, including the download mode.
(Keep in mind that a single quality update or even a single Microsoft Store app may result in the download of multiple files. Delivery Optimization keeps track of the progress of each individual file.)
When you run the cmdlet above, pay attention to the following fields in the output:
DownloadMode: Are downloads using the expected mode? DownloadMode indicates the mode that was used for a download of a particular file. Even if you set DownloadMode 2 (Group), for example, downloads that don’t qualify for peer-to-peer may indicate that DownloadMode 99 was used instead. For a file that is less than 10 MB in size, that behavior is expected (that’s the default minimum file size to use Peer-to-peer). However, if all your downloads start in DownloadMode 99, for example, it may mean that your device is unable to reach the Delivery Optimization Service or that you are running a virtual machine with less than 32 GB total disk space that isn’t allowed to use peer-to-peer by default. (Please see Troubleshooting steps if you don't see any bytes from peers for more information.)
BytesFromPeers or BytesFromGroupPeers and PercentPeerCaching: Assuming your downloads did use a “peering” download mode (1, 2, or 3), this is where you’ll be able to see how much data you are getting from peers vs. the HTTP source—whether that’s a content delivery network (CDN), Windows Server Update Services (WSUS), Windows Update, or your System Center Configuration Manager distribution point.
The cmdlet will only list files that are still active in your cache, meaning files that are in the middle of a download or are “caching” (i.e. available for uploads to other devices). When a file expires (by default, this is up to three days after the download has completed), it will no longer show in the output of this cmdlet, but you can always run the following cmdlet to view a summary across all of your file downloads in the last month:
The results will encompass those that qualify for peer-to-peer, but also those that didn’t, as shown in the example below:
To view the same data shown above via a friendlier option, simply search for “Delivery Optimization” (without the quotes) using Cortana from your Windows 10 machine or—starting in Windows 10, version 1809[i]—go to Settings -> Update & Security -> Delivery Optimization.
Once you have accessed Delivery Optimization settings, click on Activity monitor to see the total bytes delivered from various sources (peers, Microsoft servers, and other HTTP sources) since the beginning of the calendar month.
Evaluating performance at the organization level
The options discussed above are great for evaluating performance on devices that you have easy access to, but once your organization has a configuration deployed across the board, you’ll want a unified way to check the performance across your organization.
Windows Analytics Update Compliance offers a holistic view of the devices in your organization that are using Delivery Optimization, including the observed bandwidth savings across all devices that used peer-to-peer distribution over the past 28 days. The results are presented in a summarized form in the Delivery Optimization Status section.
As you can see from the screenshot above, Update Compliance can provide you with a breakdown per content type, the total count of devices that successfully participated in peer-to-peer content distribution, and the amount of data that was pulled from peers. Even better, you can drill into the log search view to find a summary of downloads per content type for particular devices. This is a great way to try and understand why some devices aren’t performing as well. For example, do the devices that aren’t performing well connect via a particular ISP? From a certain geographical location? Are they all laptops?
Lastly, you may ask yourself, what is considered “good” performance? At Microsoft, we often see anywhere from 60-70% of the data on a month-by-month basis offloaded to peers. (For more information, watch the Delivery Optimization Deep Dive from Microsoft Ignite 2018 on demand.) With some configuration tweaks, your organization should be able to see at least 60% of the data fulfilled by peers, especially in sites where you have more than 100 devices. This is definitely bandwidth savings worth getting excited about.
[i]It’s a bit buried in prior releases, but you can find it if you dig under Settings -> Update & Security -> Windows Update -> Advanced -> Delivery Optimization. (Phew!)