I'm trying to pin VirtualBox to a few cores with taskset like so:

/usr/bin/taskset -c 1-3 VirtualBox &; disown

But the taskset has no effect. I have verified that taskset works with processes other than VirtualBox (so I know I've setup isolcpus correctly). What I believe is happening is that VirtualBox is just the frontend, and when I pick the VM I actually want it's somehow launching it such that the core pinning isn't inherited.

How can I make the actual VM instance obey the pinning?

1 Answer 1


You are right VirtualBox is not the only process that needs to be contained, but it's more than just a front end.

Short answer: Try binding VBoxSVC.

Long answer:

You should probably use top (or better htop) in your computer to find the component that is doing the work in your situation, Virtualbox spans at least two background processes VBoxSVC, that at least in my computer looks like the main CPU user and VBoxXPCOMIPCD that looks like some kind of communication server.

Note that only one of each processes are spawn for each user even if multiple VMs are started by the same user. I don't know if binding just them will work for you own needs.

For further information this article have loads of information about how VirtualBox works.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .