The setup is as follows. Ubuntu-11.10 VM running on an ESXi host. The VM has 3 vCPU assigned.
When running dump (to backup the harddisk) it seems all the processes are assigned to the first vCPU. As we are using compression this loads the vCPU at 100%, slowing down the dump to a crawl.
I have (by using taskset) spread the dump processes to other vCPUs and thereby gained a factor 3 speedup of the backup. Their original affinity was set to 0-2, and if I remove the affinity I have set they all move back to the first vCPU.
I can not fathom what may cause the scheduler to allocate all processes to the same CPU. Can somebody please explain why the task-scheduler may act like this?
3 vCPUs is not a normal setup. Try this again with 2 or 4 vCPUs. I'm just curious if the behavior would change. You should not need to set any CPU affinity for a process like this.
What does the underlying ESXi host look like? What are its specifications?
Are you literally using the
dump
command, or is there another backup utility in use? Is that utility single-threaded or multi-threaded?Edit:
I think this may be related to the compression in use. I'm testing in my environment to see:
sudo /sbin/dump -0uanj -f - / | ssh -c blowfish [email protected] dd of=/Path/to/backup/file