I decided to run an experiment today. I was wondering why my Windows VM's seem to kill my CPU and disks. Why they were so slow when I demo on them. So I launched 2 different virtual machines running Windows XP, ran all software updates, virus scanned them, and clean rebooted them, then launched Task Manager and nothing else. And I left them alone. For a long time. No mouse movement, no app switching, no apps running, they just sat there.
I expected them to eventually do nothing, no CPU usage, no disk activity. My Mac does nothing when its idle. My Linux VMs do nothing when idle. Surely...
I was wrong.
Looks like Windows takes 30% off the top. And maybe a little more...
VMWare reported both CPU's running at 100% for the first few hours. I know, hours! Then they dropped to 40% each. I give that VMWare does create a CPU hit (lets generously give up 10%). But 90% for the first few hours? And then 30% CPU Usage on idle VM's? Idle!
VMWare also reported that the virtual hard drives were reporting full time reads. But what is being read? Why is it being read?
So I started to watch Task Manager, to see what was consuming the CPU's. Both Task Manager's reported an average of 60% CPU Usage, 60% of the time the CPU is doing something on Windows.
Half of that 60% was being taken up by MsMpEng.exe (Windows Defender), thats 30% of all available CPU cycles, and it turns out, it is also the culprit that is causing those excessive reads. But Windows Defender has already run its scans. And search indexing is complete (for those who think it's the search indexer causing this). Since no user applications are running, and therefore no new files being created, opened, written, etc, there is no need for the indexer to update nor for Windows Defender to be doing anything.
The other half of the 60% seems to be evenly split between System.exe, and a few others like TaskManager itself, explorer, VMToolsd.exe and a few bits and pieces that pop up and then disappear for a while. I don't begrudge System.exe, it maintains the operating system and provides services. I do wonder why TaskManager uses so much CPU when its effectively UNIX's top. And VMToolsd.exe needs to run to make the VM remain smooth. But they really are not that big.
After several hours of still leaving it alone, the second 30% (System, VMTools, ...) drops to almost nothing, just spikes occasionally. But MsMpEng.exe still uses between 25% and 30% CPU, and the hard disk reads are still full time.
30% off CPU. And who knows how much time and productivity off because of this. I have to interrupt Windows Defender to so something. I have to interrupt Windows to get my own work done.
In comparison, my Mac chews up less that 5% of CPU when idle, and disk reads and writes remain quiet. My Linux VM's are the same, after their launch flurries, they too idle at 5% CPU and no disk activity.
So why, Windows, do your users get 30% off? 30% off performance, 30% off productivity, 30% off the computer we paid for.
Update: Several hours later, I come back, having left both VMs alone, and the laptop is overheating, the fans are running hard and CPUs are again at 100%, disk reads at 100%. As soon as I woke the VM's, it dropped to 30% usage. Something is going on, but I have no idea what!
No comments:
Post a Comment