MacOS – How to limit the bandwidth on a per-application (or per-process) basis in OS X Yosemite

firewallhomebrewmacos

Whenever I use Homebrew or Apple Store to download a large application, it sucks all my available bandwidth and I am then unable to browse the web.

How can limit the bandwidth per-application or per-process in OS X Yosemite (command line preferred, but GUI apps accepted)?

I've played a bit with IceFloor application, which suggested I use ALF firewall, but I don't know how to set it up.

Best Answer

The feature you want is confusingly called Quality of Service or "QoS" for short.

These days it is usually configured for an entire network, or subnet, using the management interface on a smart switch (which costs a little more than an Ethernet hub with the same number of ports, but not much more--here is a representative model from Cisco for under $100).

The closest equivalent that runs on OS X directly is ThrottleD from IntraArts:

Throttled Pro [gives you] weighted network queues (WF2Q+) that guarantee bandwidth for all your essential network services like web browsing, email, and online gaming. In addition, it provides ACK packet priority which speeds up downloads when you are sending out a lot of data. This combination assures that you get the most out of your internet service.

The GUI version is $20, while the CLI version is donationware.