Time capsule wired backup transfer slow with fast "bursts"
I have recently bought a 3TB A1470 Time capsule (the latest, 'tall' ac model) to replace a 2TB A1409 (the 'flat' one, n model).
The Airport utility was helpful in moving the network settings over from one device to the next.
I would also like to transfer the exiting backup as per these instructions, i.e. by connecting the old time capsule to the new one and connecting my macbook to the old time capsule.
Everything works but according to the estimates, copying over 1.4 TB of backup would take 2 days over what is supposedly all Gigabit Ethernet connections...
Finding this a bit ridiculous I decided to look at the troughput over my connections using Activity Monitor:
300 GB in, the results are quite odd: most of the time, throughput is quite low, hovering around 5MB/s but every few minutes or so the speed will increase dramatically (as pictured) but these higher speeds can never be maintained.
Both TC's are on the latest firmware, as is my macbook Air. Wireless on both TC's is disabled and the computer is not doing anything else and fully up-to-date.
Could it be that the TC's are throttling their CPU's or something?
EDIT
I also noticed that with increasing throughput, the CPU usage on the macbook goes up, but this might be normal as I am using the Thunderbolt GigE adapter.
EDIT 2
After giving rsync a try as outlined here it seems that my concept of what a .sparsebundle is, is wrong.
After running rsync, it started to secures through thousands of files... so probably, the sparse bundle is not treated as a single huge file that needs to be copied but rather like a directory of files. This might explain variations in transfer speed? (just thinking out loud here)
Solution 1:
Time Machine runs as a low priority process by default, and this will cause it to be throttled whenever a higher priority process runs (and possibly to optimize energy usage on battery), hence the performance bursts.
You can disable throttling for Time Machine with:
sudo sysctl debug.lowpri_throttle_enabled=0
Keep in mind this might increase power usage on battery.
This setting will be lost on reboot. To make it permanent, create a launch daemon:
sudo nano /Library/LaunchDaemons/nothrottle.plist
Enter this text in the file:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>nothrottle</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/sysctl</string>
<string>debug.lowpri_throttle_enabled=0</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Save it and exit nano (Press ctrl+X, then Y when asked to save changes)
Then enable the launch daemon:
sudo chown root /Library/LaunchDaemons/nothrottle.plist
sudo launchctl load /Library/LaunchDaemons/nothrottle.plist
Backups should now be performed at maximum performance.
In case you want to re-enable throttling, run:
sudo sysctl debug.lowpri_throttle_enabled=1
If you had enabled the launch daemon, run:
sudo launchctl unload /Library/LaunchDaemons/nothrottle.plist
Source