Author: Prasanna Kumar Jayapal, Senior Development Lead
Have you ever wondered if there is a way to force a package to get to a distribution point soon? Or wanted to get the package to a distribution point sooner than another distribution point, without manually distributing the package to distribution points one at a time?
Well, there are few knobs available that you can leverage, including a tool called “DP Job Manager” which ships in our System Center 2012 R2 Configuration Manager Toolkit .
In this blog, I will talk about what we do within the product, as well as show some settings that you can leverage to fine tune or control how effectively the content gets distributed to your distribution points.
You can define priorities for various objects. Because of this, the word “priority” has become overloaded and perhaps a bit confusing. I will try to call out all the “priorities” here.
Package Distribution Priority is the distribution priority for the package that you create. It has 3 values: High, Medium and Low. When a site server is sending content to distribution points, high priority packages get precedence over medium priority packages, and medium priority packages get precedence over low priority packages. Package distribution priority is also taken into account while sending packages from site to site. In other words, Configuration Manager picks up high priority package for processing ahead of medium and low priority packages.
Note: By default all packages are assigned “medium” priority.
The following picture shows a screenshot of how you can configure package distribution priority from the System Center 2012 Configuration Manager administrators console.
Picture 1 – Shows the package distribution priority settings
If a package is distributed to multiple distribution points or to a distribution point group (which has more than one distribution point), here is what happens under the hood and how we pick the first distribution point for the content to be distributed.
Each distribution point has a priority (a number) assigned to it. By default, each distribution point has a priority number of 200. Administrators can update a distribution point’s priority number via the WMI SDK Provider. The lower the value, higher the priority. This distribution point priority setting was introduced in System Center 2012 Configuration Manager; however, it was only used for distribution point upgrade scenarios. In System Center 2012 R2 Configuration Manager, this setting is used for content distribution as well. For example, if there is a distribution point with priority 10, PackageTransferManager will allocate a thread to distribute content to that distribution point ahead of another distribution point whose priority is 200.
The following picture shows a screenshot of a result object from the following WMI query
SELECT NALPath, Priority, SiteCode, TransferRate
FROM SMS_DistributionPointInfo
Picture 2 – Shows a SMS_DistributionPointInfo object in WMI
SMS_DistributionPointInfo is a read only class. To update the distribution point Priority, you have to update the SMS_SCI_SysResUse object. Here is a simple powershell sample to update the distribution point Priority.
$sdkserver="R2820511.R2820512DOM.NET" $siteCode="CCP" $property="Priority" $targetDp="\\R2820513.R2820512DOM.NET" $priorityValue = 20 $dp = gwmi -computer $sdkserver -namespace "rootsmssite_$sitecode" -query "select * from SMS_SCI_SysResUse where RoleName = 'SMS Distribution Point' and NetworkOSPath = '$targetDp'" $props = $dp.Props $prop = $props | where {$_.PropertyName -eq $property}
Write-Output "Current DistributionPoint Priority = " $prop.Value $prop.Value = $priorityValue Write-Output "Updating the DistributionPoint Priority to = " $priorityValue
$dp.Props = $props $dp.Put() |
For each distribution point, we track the previous content transfer rate. This is new to System Center 2012 R2 Configuration Manager. TransferRate is a column in the DistributionPoints table that stores the “bytes transferred per second” and is automatically updated by the Distribution Manager component at the end of a successful content distribution to that distribution point. A value of 0 indicates that the TransferRate is unknown. It could be because it is a new distribution point, a distribution point to which no content has been distributed, it is a local distribution point on the site server machine, etc…
If there are two or more distribution points which have the same priority (e.g. two distribution points with priority 200), then here is what happens :
Note: The TransferRate value is maintained internally and is not meant for the users to update. It is exposed as a read only value in the SMS_DistributionPointInfo class. Picture 2 above shows this property and the value.
Package notifications are sent to pull distribution points based on the Priority. For example, a pull distribution point with a priority 10 will get a package download notification before another pull distribution point with priority 200. However package download notifications are very light weight operations. A pull distribution point has to pull down the content from a source distribution point, which is the real heavy duty operation and for this the distribution point priority has no implication. Similarly, TransferRate has no implication for pull distribution points.
Lastly, if you want to monitor content distribution and manage/change the ordering of the outgoing content distribution jobs for Configuration Manager Distribution Points, check out the DP Job Manager tool that was released in the System Center 2012 R2 Configuration Manager Toolkit . This tool shows a queue like view of all the content distribution jobs on the site server and provides the admins a capability to change the ordering of the jobs. This tool does not connect to the remote distribution points to get the status. It only shows the server side view of the queue. It connects to WMI and leverages SMS_DistributionJobs class which is used to track each content distribution job. The property “DynamicOrder” is used to dynamically control the priority of the content distribution job. Note: The DP Job Manager manages the content distribution to remote DPs assigned to a primary site only.
There is another type of priority associated with pull distribution points. I want to call that out so you can understand the difference between them.
Picture 4 – Pull Distribution Point properties showing the Source distribution points and priorities.
Pull distribution points have to pull content from source distribution points. For a given pull distribution point, you can have one or more source distribution points defined and you can assign a priority number to each source distribution point. In other words, it is the ranked list of source distribution points from whom the pull distribution point can download the content. Pull distribution point will try to pull the content from a source distribution point with the highest source distribution point priority (Note: the lower the value, higher the priority). If the content is not available on that source distribution point, then the pull distribution point attempts to download the content from the next source distribution point in that priority list. If multiple source distribution points share the same priority, the pull distribution point will select one randomly.
If you want to speed up the distribution of content to a distribution point, the recommended way is to update the package distribution priority and/or the distribution point priority. Alternatively, if you want to speed up a specific content distribution job you can use the DP Job Manager tool.
Here is the order of precedence and scope for various options available to control the content distribution priorities.
Note: All of the above values are leveraged by the DistributionManager and PackageTransferManager components on the site server to pick the highest priority content distribution job.
Source distribution point priorities are leveraged by pull distribution points to pick the appropriate source distribution point from which it can download the content.
--Prasanna Kumar Jayapal
Configuration Manager Resources
Documentation Library for System Center 2012 Configuration Manager
System Center 2012 Configuration Manager Forums
System Center 2012 Configuration Manager Survival Guide
System Center Configuration Manager Support
This posting is provided "AS IS" with no warranties and confers no rights.