On my ESX box, I have a Windows XP low resource machine that I use to host a few scripts and management tools for my (virtual) servers.
Whenever my box is idle for 20-30 minutes, without fail, the CPU and IO usage go to almost 100%. The moment I move the mouse, the usage drops very quick. Within about 5 seconds, it is just a regular VM acting how it should.
After this, it is like nothing has happened and it is very fast again.
I have read the other answers here which haven't helped, and I found the VMWare Guide which did not help either - the Virtual Machine is set up correctly (as far as I can see) - ACPI Uniprocessor etc. and Windows XP as the template.
I was wondering if anyone knows what is going on? Also, the thing that confused me the most was that I left Process Explorer running and managed to track it down to a svchost.exe
process - unfortunately it was the large one that hosts a huge chunk of services.
I would of expected it to be the Idle process that would be taking the cycles, or the guest to show nothing and just busy on the ESX box... So this problem has stumped me.
Anyway, I read the good answer here, and if no one knows what is happening, I will try to implement it (the reason I haven't is that I don't really want to restart this machine - it is doing critical tasks at the moment). This server is a vanilla XP Pro SP3 install + VMWare Tools + Filezilla + A few management scripts (which I wrote and work fine if the PC is not left to idle).
This is an example of the machine running at 100%, I then move the mouse and disconnect console - you can see, it takes just over 20 minutes, then, it goes back to 100% CPU and IO.
Does anyone know what is happening?
Have you totally disabled all power management? Have you disabled hybernation? Have you disabled the screensaver?
I think you can use Process Explorer (From SysInternals) to try and drill down to which service is hammering the CPU.
Looks like a .NET recompile after doing SP3/windowsupdates etc. (see IOstats)
I've never tried this, but is it possible to hot-clone the desktop and remove / disable / point to nowhere its network cards? You can then leave this box doing its critical stuff and then do as much troubleshooting as you like on the dummy system.
I've seen similar behavior on non-virtual XP workstations. The behavior is the same as you describe: High CPU, high disk activity, and it stops almost immediately as soon as I touch the keyboard or move the mouse.
This may be Windows updating its prefetch cache. It normally runs in the background after a period of inactivity. There's a nice description here; scroll down to the "Prefetch" section. The last paragraph in the section states that the system will periodically fire up the defrag utility to try to move all of the prefetch files into a single contiguous area. It should normally only last for a couple minutes, but if you're in the habit of clearing our XP's prefetch directory (which you shouldn't), it would have more work to do to rebuild it. It's not clear to me whether the defrag part of this process can be disabled. TweakUI has an option to disable background disk optimization, but it's vague on exactly what it does.
If that isn't it, another possibility is be the Windows Indexing Service, which is on by default. It can be disabled with little impact if you don't use the Windows built-in search much. Since it's indexing your (virtual) disk, it will definitely cause disk I/O to spike, and CPU usually rises as well.
See if you have the Windows Indexing Service running. It may be that during idle periods, the indexer is indexing your drives, and that is what is gobbling your cpu resources.
In My Computer, right click on each hard disk in turn, and choose "Properties".
Un-check the "Allow Indexing ..." check box at the bottom of the Properties window.
See if your performance increases.