Bandwidth Throttling Issues Help

(imported topic written by russwm91)

Hello Big Fix community

Here is what I need from you experts I need to be able to push out large package 316mb to all these relays that have very limited bandwidth each relay only has a 384k connection back to main office and to parent relay. Our network pipe is a DS3 or 45MB connects going out to these relays. I need to know which throttling option would be the best one to use to have top level relay push 316mb package down to all 707 branch locations with out overwhelming the pipe and causing the network alarms going off due to Bigfix failing to throttled traffic.

If possible I would like to mimic our current SCCM setup. In SCCM we have certain bandwidth set 16kbps during business hours then we have bumped the speed to 64kps during off hours. So in theory no software download to a one of the 707 Distributions points workstations exceeds 16kbps or 64kps of network traffic.

any help on this would be greatly appreciate since my company is still on the fence with Bigfix being able to complete with SCCM.

Thanks,

Russ

(imported comment written by BenKus)

Hi Russ,

Actually, it might be easier than what you are looking at… We have a bandwidth throttling control for exactly this situation. See “D” at http://support.bigfix.com/bes/misc/besthrottling.html

What you should do is set the outgoing bandwidth control for your top level relay (or if you have more than one, then set each top level relay to use a portion of the bandwidth).

For example, your DS3 allows 45 mbits per second (or 5.6 mbytes per second) so you might set the total outbound traffic to half of that (to be safe and leave the other half for other network activities). So you would set outbound bandwidth throttling on the top level relay (there is a task in the BES Support site to do this) to 2.8 mbytes or 2800 kbytes. If you have two top level relays, then set each of them to half that (1400 kbytes per second).

With this approach, you won’t need to set inbound relay throttling… This has a big benefit that if a smaller number or relays, then they can use more of the bandwidth to finish faster. But you can be sure that you won’t have all the relays overwhelm the network connection even if they all happen to connect at once. I think this is a better approach than strictly limiting each relay’s inbound throttling (although you can do that on a timer too if you want)…

One note is that you want to make sure that you get all the top level relays because if the relays report to another relay or to the server, then they won’t be throttled.

Ben

(imported comment written by russwm91)

Hello Ben,

Your saying to use task ID 163 witch states to enter a value and your saying 2800 would be the equivalent of half the DS3 pipe. Since I only have one Top level relay that all relays communicate to then that Top level relay communications to the main BES server. If I understand this correctly this throttles to all outgoing connections equally. How does this handle a task that is sent to just 1 or 10 relays devices what would be the max of the bandwidth it would use?

I want to make sure that the 316MB SP3 gets to the relays but doesn’t kill the pipe. If a relay is shutdown since this can take days to download with small bandwidth allowed does it know to start up from the last time it started the download or does this need to start from scratch?

Note just did a test with a value of 3800 on Top level relay and used pre-cache wizard to push out SP3 to one relay. I checked with Networking and they reviewed the download traffic coming from Top level relay to be 236kbs out of the 384kbs connection at that remote branch. Not sure how this is being throttle the network guys are not convince this is being throttled correctly. I need any time a download is sent to any one of the relays weather it be 1 or a 1000 relays to maintain the same traffic usage around 40kbs out of the 384kbs connection like SCCM does currently.

Thanks

(imported comment written by BenKus)

Hey Russ,

So I think you have two concerns:

  1. Make sure that your total outbound traffic is less than 45mbps (or to be safe, half of that) to avoid overwhelming the total pipe.

  2. If the individual pipes are limited, then make sure that each connection only uses a certain amount of bandwidth.

Everything mentioned above only deals with the #1. So I would expect no throttling because only 1 connection will not come close to triggering the 2.8 mbytes / sec total outbound rate.

If you would like to also throttle each individual connection as the relay downloads, you can do that too using Task 152 on the BES Support site to change your relay settings. In this case, you can set it to use 5000 bytes/second (which is equivalent to 40kbps). After you try this, you can run your test again and you should see lower bandwidth usage.

If you want to be on the safe side, you can keep both throttling configurations in place. There is also the concept of dynamic throttling where the relay will detect the amount of available bandwidth, but you might want to start with the static throttling that I mentioned so you can be sure your network team is happy.

To answer your other question, if a download is interrupted, it will restart from the same position so you won’t have to start over.

Ben

(imported comment written by russwm91)

Hello Ben,

I used task 152 set it to 5000 network guys checked and it was 40kbs so that is working great. I read some where that you can control the time frame when this is throttled. Like between 5am-7pm it is 40kbs between 7:01pm and 4:59am it’s 250kbp network bandwidth. Is this a task that I can apply to all the relays so I can match what we currently have in SCCM. If it is can you provide me with detail or example of how to do this. Our SP3 push is coming soon when CR is approved but still need to figure out how to get it out in a timely manner during business hours and off hours.

Thanks,

(imported comment written by BenKus)

Hey Russ,

You will need to make a dynamic setting for this:

http://support.bigfix.com/cgi-bin/kbdirect.pl?id=367

Use the setting:

_BESGather_Download_LimitBytesPerSecond

You can use relevance like this:

{if ((it > 5 AND it < 19) of hour_of_day of current time_of_day ) then 5000 else 30000}

Ben

(imported comment written by russwm91)

Hello Ben,

Do I need to stop task 152 then send out task 152 with 0 for no throttling traffic download to relays. Then create new task for the dynamic setting and then proceed with assigning this to all the relays that I want this setting to get. Finally then use the sample relevance you stated in the action script. Just want to make sure I understand before I proceed with this advance setting.

Thanks,

Russ

(imported comment written by BenKus)

Just use the instructions in the KB article about how to create a dynamic setting and apply it to the computers that you want… you can stop your old 152 action (but it doesn’t really matter because the later action will override it).

Ben

(imported comment written by SystemAdmin)

I’m looking to apply something similar to our environment and have a few questions. We have several sites with several different sized WAN links. I have configured every site to have a relay however I would like to configure the relay to throtlle the amount of bandwidth it is using. It appears the “BES Relay Setting: Dynamic Download Throttling” will do the trick. This is the intended use correct?

In the Description is states “The throttle percentage represents the fraction of the maximum bandwidth to use when conflicting network traffic is detected” Is the maximum bandwidth automatically determined by the relay or does it use the value configured as the “maximum total download traffic”?

Example:

Relay at a site with a 256 kb/s connection.

Leave the maximum total download traffic setting at 0 for max or does it need to be set to 32 768 bytes/sec (256kb/s)

(imported comment written by SystemAdmin)

Follow-up.

If it set the max value to 16384 bytes/sec will a throttle of 50% be 50% of 16384 or 50% of max speed of the line which is 32768 bytes/sec??