Content Distribution Priorities

Content Distribution Priorities

  • Comments 3
  • Likes

Author:  Prasanna Kumar Jayapal, Senior Development Lead

Introduction

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.

 

Distribution Point, Package and Job Priorities

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

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

 
Distribution Point Priority

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 "root\sms\site_$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()

 Distribution Point TransferRate

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:

  • We look at the last content transfer rate. Whichever distribution point has the highest content transfer rate is picked up ahead of the other one.
  • If all of them have the same content transfer rate, then one of them is randomly picked.

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.

 How do distribution point priority and TransferRate affect Pull Distribution Points?

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.

DP Job Manager

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.

 Source distribution point priorities for a given Pull Distribution Point

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.

Summary

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.

  1. DP Job Manager Tool – This tool sets the priority for a content distribution job. In other words, the scope is for a “specific package targeted to a specific distribution point”. This has the highest precedence.
  2. Package Distribution Priority – This priority is stamped to the package and has the next highest precedence.
  3. Distribution Point Priority
  4. Distribution Point TransferRate

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.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Great post!
    Would it be possible to use Client Settings to configure BITS to throttle package distribution to Pull DPs? I'm thinking you could create a collection of Pull DPs and Deploy the Client Settings to them?

  • Good information...

  • is there way to change the 100 retry on the distribution point? they don't seem to apply the software distribution rules defined