Article ID: 2008368 - View products that this article applies to.
A Persistent high CPU usage condition will be noticed in a Performance Monitoring Application (PMA) when it queries the Job Object or Job Object Details Performance Counters when the system has a large number of Job Objects in the \BaseNamedObjects namespace in the Kernel. The high CPU condition occurs regardless of whether the performance data for those objects are queried via interfaces exposed by performance monitoring libraries or via WMI interfaces.
If the performance monitoring application is terminated then the high CPU usage condition will subside.
This high CPU usage condition will occur when the PMA attempts to query all the Job Objects or Job Object Details counters and all of their attributes for all the Job Object Instances and the number of Objects in the \BaseNamedObjects namespace is large. \BaseNamedObject namespace is exposed to the performance monitoring libraries via Job Object and Job Object Details performance counters.
If a namespace is not specified when a program creates a Job Object, then in Windows 2003 those objects will be created in \BaseNamedObjects.
Job Object and Job Object Details are complex structures and querying all the attributes of a Job Object is a CPU intensive operation. The high CPU condition can happen under either of the following two circumstances.
For more information about the structure of a Job Object and the data set which is being queried for each individual Job Object, you can refer to the Win32_PerfFormattedData_PerfProc_JobObject Class document.
This problem is less likely to occur in newer Operating Systems such as Window Vista, Windows 7, Windows Server 2008, and Windows Server 2008 R2. This is because with these Operating Systems, the default namespace for application-specific objects is of the form \Sessions\<SessionID>\BaseNamedObjects. As the Job Objects which are created in these namespaces are not directly under the global \BaseNamedObjects namespace, they are not exposed to the performance libraries and will not be available for query via Performance Monitoring Tools.
The WinObj tool from Sysinternals can be used to find the number of Objects in the \BaseNamedObjects namespace.
Article ID: 2008368 - Last Review: May 22, 2013 - Revision: 4.0