I'm running a setup consisting of a Linux host OS and a Windows 7 guest (VMware Workstation). I'm trying to run 16 CPU-bound background jobs on the Linux host at nice values of 19 (the lowest possible priority; one for each virtual CPU) and simultaneously use the Windows VM as a normal desktop OS. For some reason the Linux background jobs make my Windows VM grind to a halt even though VMware's nice value is 0.

If it helps, I'm running an 8-core machine with hyperthreading, so 16 virtual CPUs. Since VMware Workstation only supports virtualizing 8 cores, only 8 of the cores are visible in the Windows guest.

Edit: The background jobs I'm running are almost purely CPU bound and perform virtually no I/O.

Edit # 2: It's not an issue with hyperthreading messing up scheduling. Disabling hyperthreading in the BIOS solves nothing.

  • -20 is the highest priority, and don't forget you have a bunch of linux processes running in the background already, besides your jobs. – Spencer Rathbun May 5 '11 at 19:55
  • @Spencer: Right, but AFAIK 0 is the highest priority for user processes. – dsimcha May 5 '11 at 19:56
  • Another thing to look at would be if vmware uses a multiprocess architecture. That is, you have a central daemon process, and separate vm processes. I'm not familiar enough to know if that would be an issue. Or it could just be a settings issue in the vm setup. I know that I've run into that with virtual box. If you don't set it to allow 3d graphics acceleration, it runs like a dog with anything more than a feather weight graphical os, especially windows. – Spencer Rathbun May 5 '11 at 20:02

You can check whether it is really CPU or rather I/O that slowes your system. vmstat 1 might be a good idea, and maybe top. The 19 processes are supposed to do something, right?

Rememer that a desktop hdd can not take more than ~100 random I/Os per second. Nice'd processes should get less I/O, but so many of them will still get enough.

| improve this answer | |

I realized what was going on here. The jobs I was running were dumping a bunch of output I didn't care about to /dev/null. Running other jobs in the background that really are purely CPU bound works fine.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.