I have a few servers, running Server 2003 Std/Ent and SQL 2000/2005, that I've noticed will start showing higher CPU usages over time. Stopping the WMI service and restarting it will always bring it back down. It's not a huge creep, but after a month it will be around a 10% increase, so even in idle times, it will show 10% cpu usage. We don't use WMI heavily, just a couple of scripts checking service states, and perfmons (does it use WMI?) which is how it was noticed. Are there WMI trace tools? Any other methods to troubleshoot this? The servers that show the symptoms are vastly different, no common elements other than the OS and SQL.


Solution 1:

I actually had this problem once. We pulled up filemon and found that WMI was writing to a log file a lot (Framework.log). We checked out the file and found it grew over 2 GB in size. We either renamed the file or stopped the service and renamed it (can't remember). At any rate, we found that it relieved the CPU. There is a KB article with a fix published that shows why the file gets so large and how to fix it. This worked for us:

http://support.microsoft.com/kb/836605

HTH

Solution 2:

There is a hotfix for this specific problem on Windows 2003. http://www.microsoft.com/downloads/details.aspx?FamilyID=0638D919-109B-41C6-851D-0BE19D29172E&displaylang=en. Hopefully the fix is that easy. You can also check your WMI-related logs in %SystemRoot%\SYSTEM32\WBEM\Logs. There could be a clue in there.

Edit: The hotfix looks to be related to SMS.

However, there's another utility specifically for diagnosing problems with the WMI service: http://www.microsoft.com/downloads/details.aspx?familyid=d7ba3cd6-18d1-4d05-b11e-4c64192ae97d&displaylang=en