How to Throttle iCloud Photo Library Uploads
In networking terms, “throttle” means to control the flow of data. But the more colloquial use of the word is also entirely appropriate when it comes to how Photos for Mac performs uploads to iCloud Photo Library. Apple’s new service for centralizing your photo library in iCloud has caused untold frustration with how it can monopolize your Internet connection, transferring photos to iCloud as fast as it can to the detriment of all other network traffic (see “iCloud Photo Library: The Missing FAQ,” 15 April 2015). This may not affect everyone, but it’s certainly widespread.
My Internet connection runs at 30 Mbps down and 5 Mbps up, and when I turned on iCloud Photo Library for the first time, Photos completely destroyed Internet performance for every device in the house: Web pages loaded slowly, Google Hangouts struggled, Netflix buffered repeatedly, Rdio stuttered, and even Dark Sky on the iPhone timed out getting climate data. I had to promise to pause syncing whenever Tristan needed to do homework (which is whenever he’s home, it seems), and it was clearly something that couldn’t run during our work days.
Happily, our old friend Will Mayall (Remember Emailer and LetterRip? That’s Will.) came up with a solution that at least some people will be able to avail themselves of. Given how long it will take to upload a decent-sized photo library, you could be doing that every morning and night for days or weeks. (And no, I have no idea what Photos thinks is happening when it says “Adding X items” after you click Resume; it goes back to uploading shortly thereafter.)
Will’s solution revolves around Network Link Conditioner, a preference pane Apple provides to developers to test their apps under simulated poor network conditions. An iPhone app, for instance, has to work properly even if the cellular data connection provides only a few hundred Kbps.
To get Network Link Conditioner, you need a free Apple Developer account. Assuming you have that, the next step is to download the Hardware IO Tools for Xcode; you likely want the most recent release. After downloading, open the Hardware IO Tools disk image and double-click
Network Link Conditioner.prefPane to install it in System Preferences.
If you don’t have or want an Apple Developer account, TidBITS reader David Schaefer alerted me to the fact that you can download the free Onyx utility and install Network Link Conditioner from the Parameters > Misc tab.
Once the Network Link Conditioner preference pane is open, click Manage Profiles, click the + button to create a new profile, and give it a name. For Downlink Bandwidth, Will recommends setting the limit to something near your connection’s maximum throughput; for Uplink Bandwidth, he found that 70 percent of your upload throughput worked well. Feel free to experiment with other numbers; you want them as high as possible without letting Photos impact the performance of other network apps. In this case, I’ve set my Downlink to 20 Mbps (leaving 10 Mbps of overhead) and Uplink to 3500 Kbps (you can’t use fractional numbers like 3.5 Mbps; that’s 70 percent of my 5 Mbps uplink bandwidth). Don’t change any other settings, since they
Click OK, and if necessary, choose your profile from the Profile pop-up menu. As long as the switch in the Network Link Conditioner preference pane is On, your Mac’s bandwidth — and thus what Photos can do to your Internet connection in general — will be throttled. When it’s enabled, Network Link Conditioner puts an icon in your menu bar; you can deactivate throttling from that menu as well. Finally, Network Link Conditioner turns itself off automatically when you restart your Mac, so make sure
to enable it again if you have to restart before your Photos sync is done.
Once Photos finishes uploading to iCloud Photo Library, you should turn off Network Link Conditioner. But I recommend leaving it installed, because if you import a lot of new shots into Photos, it very well may take over your Internet connection again, necessitating a return to the Network Link Conditioner preference pane to rein in that unruly upload. Better yet, we can hope Apple will update Photos to be friendlier; apps like Dropbox and CrashPlan upload constantly in the background on all my
Macs with no noticeable impact on overall performance.
You can also use Onyx to get Network Link Conditioner. It is in the Parameters>General tab, under “Install preference pane”.
Well, that's truly cool - thanks! I'll add that to the article, for those who don't want to sign up for a developer account.
Looks like it's in the Misc tab in the current version of Onyx - perhaps it moved from a previous version.
The issue of other apps and devices becoming slow as an effect of saturated uploads is usually a fault of the router. The term is buffer bloat and refers to too large network buffers. Steve Gibson explained this very nicely once. But the network link conditioner is certainly a nice workaround for Apple's omission of an integrated throttle.
Keep in mind this is a blunt instrument. If you have a very minimal upload bandwidth to the internet, directly from the machine that has the Photos library then that's fine, however if you go via a router and use that machine for anything else requiring upload via the same pipe (i.e. Hardwired Ethernet) like: Screen Sharing, Time Machine network-backup, File Sharing, Server Caching etc, the throttle will also affect it.
I had to limit my Upload bandwidth to 200kbps (maximum is 300kbps at my house) and the throttle rendered the rest of the Mac Mini's utility useless. It would be fine for those people with much larger upload pipes but not for people in my position.
Totally agreed - if you have only 300 Kbps of upstream bandwidth, I fear that letting Photos upload to iCloud Photo Library while you need anything else to happen is just going to be a problem no matter what.
I like the work around but the root cause of this is something called bufferbloat! Our computers and network devices are causing a lot of this.
This kind of problem is one of the main reason I thought Apple's original "access all your photos from all your devices" idea was completely wrong-headed. Not only is this a tremendous waste of bandwidth—it can also bring all other internet-related processes to their knees.
Virtually no one needs to upload all their photos to the web in the first place. It makes much better sense to create albums in an app like iPhoto and upload them to an internet-based image gallery. Anyone in the world who has an internet connection and the necessary link can then view those images.
I'm having a lot of problems with Photo-stream. I've gone through all of apple support options and continued through the forums trying various "delete" this, turn this off, share to photostream (?) tricks to no avail. Apple's HELP pages don't reflect Photos very well. Anyone else tired of Apple's half-baked out-of beta style of software implementation with outdated help pages?. How can I help my customers with this stuff if I can't even get it to work correctly (and I'm no spring chicken to all this either) Sorry for ranting here - but I would love to put this problem in front of Tim or Phil. So why would i want ALL My photos in THEIR cloud if Photostream doesn't even work properly?