How to Enable Throttling on Multiple Agents in DPM

I ran across a gentleman in one of the DPM forums that needed a way to turn on throttling across hundreds and hundreds of DPM agents. It is not feasible to turn this on via the DPM admin console agent by agent as this would require a lot of time to do. I am going to detail a way to throttle multiple DPM agents at the same time cutting the time down to a few minutes.

 

Throttling is used to ensure bandwidth used by DPM agents does not clog the network so that the bandwidth is available to applications on the network.

Here is the standard process for turning on throttling in DPM:

http://technet.microsoft.com/en-us/library/ff399035.aspx

  • In DPM Administrator Console, click Management on the navigation bar.

  • Click the Agent tab, and then select the computer for which you want to configure network bandwidth usage throttling.

  • In the Actions pane, click Throttle computer.

  • In the Throttle dialog box, select Enable network bandwidth usage throttling.

  • Select Throttle Settings and Work Schedule for the computer.

    Here is the process to throttle multiple DPM agents at once:

  • Go to your DPM Admin console and enable throttling on an agent.
  • Now on the DPM server or remote SQL instance server open up SQL Management studio.
  • In SQL Management Studio run the following query on the tbl_AM_InstalledAgent table to find out the settings and ID GUID of the agent you just enabled throttling on.

    SELECT [InstallID]
          ,[ServerId]
          ,[AgentID]
          ,[OSType]
          ,[RebootRequired]
          ,[Deleted]
          ,[DeletedDateTime]
          ,[ClusterID]
          ,[Enabled]
          ,[PatchID]
          ,[IsThrottled]
          ,[WorkHoursTransmissionRate]
          ,[NonWorkHoursTransmissionRate]
          ,[ThrottlingSettings]
          ,[OSVersion]
          ,[ServerAttributes]
          ,[IsServerOS]
          ,[ApprovedPatchByAdmin]
      FROM [DPMDB].[dbo].[tbl_AM_InstalledAgent]
    GO

    The results should look similar to this:

    image

  • Scroll to the right until you see the IsThrottled column, Notice the row that has a 1 in it. Copy the InstallID..

    image

  • Copy the InstallID into the following Query and run this against the tbl_AM_InstalledAgent table.

    DECLARE @w int
    SET @w = (SELECT [WorkHoursTransmissionRate] from tbl_AM_InstalledAgent WHERE InstallID = ‘2083CDAA-2872-4D2D-BAEA-ADF033021EB9′)
    DECLARE @n int
    SET @n = (SELECT [NonWorkHoursTransmissionRate] from tbl_AM_InstalledAgent WHERE InstallID = ‘2083CDAA-2872-4D2D-BAEA-ADF033021EB9′)
    DECLARE @t nvarchar(max)
    SET @t = (SELECT [ThrottlingSettings] from tbl_AM_InstalledAgent WHERE InstallID = ‘2083CDAA-2872-4D2D-BAEA-ADF033021EB9′)
     
    UPDATE [DPMDB].[dbo].[tbl_AM_InstalledAgent]
       SET
          [IsThrottled] = 1
          ,[WorkHoursTransmissionRate] = @w
          ,[NonWorkHoursTransmissionRate] = @n
          ,[ThrottlingSettings] = @t
    GO

    INFO: This query is going to update all the other agents in the tbl_AM_InstalledAgent table with the throttle settings of the agent who’s InstallID you copied.

  • Now check the agents in the DPM admin console. They should all be enabled for throttling and have the same settings.

    image

    image

     NOTE: If you throttle multiple agents in DPM using this method it is not supported. That does not mean this will not work, it simply means that it has not been tested by Microsoft and therefore cannot be supported. Use this at your own risk.

    Special thanks to MVP’s Islam Gomaa, Flemming Riis for helping me track down this solution and thanks to my wife for helping me with SQL.

  • Print Friendly, PDF & Email

    Leave a Comment