Microsoft KB Archive/258833

From BetaArchive Wiki
Knowledge Base


How To Troubleshoot High CPU Utilization of an MTS or COM+ Process

Article ID: 258833

Article Last Modified on 7/13/2004



APPLIES TO

  • Microsoft Transaction Services 2.0, when used with:
    • Microsoft Windows NT 4.0
  • Microsoft COM+ 1.0



This article was previously published under Q258833

SUMMARY

When a Microsoft Transaction Server (Mtx.exe) or COM+ (Dllhost.exe) process displays high CPU utilization in Perfmon, and the CPU Usage rises to 100%, this article can help you capture a process dump and a Performance Monitor log, which you can use to compare with the process dump, to help isolate the problem. To analyze the dump, you can contact a Microsoft Support Professional or use the WinDbg tool (see the "References" section for more information).

MORE INFORMATION

To capture a process dump and a Performance Monitor log, follow these steps:

  1. On the Start menu, point to Programs, point to Administrative Tools, and then click Performance Monitor.
  2. On the toolbar, click the plus (+) button. In the Add To Chart dialog box, select the following items:

    Object = Process
    Counter = % Processor Time
    Counter = ID Process

  3. From the Instance list, click All processes on the system, click Add, and then click Done.
  4. To highlight the process that is consuming the most CPU, on a computer that is running Microsoft Windows NT 4, press the BACKSPACE key once. On a Microsoft Windows 2000-based computer, click the light bulb button on the tool bar. The selected counter appears in white on the graph.
  5. Use the arrow keys to find the process that is consuming the most CPU. Note the Process name and Process ID.
  6. Press the DELETE key to remove other irrelevant counters from chart.
  7. On the Perfmon toolbar, click the plus (+) button. In the Add to Chart dialog box, select the following items:

    Object = Thread
    Counter = % Processor Time

  8. From the Instance list, click All the threads for the noted process instances (MTX.exe in Windows NT 4 and Dllhost.exe in Windows 2000), click Add, and then click Done.

    This will look like the following:

    - dllhost/0
    - dllhost/0#1
    - dllhost/1
    - dllhost/1#1
    ...
                            

    The number after the '/' is the thread number. The number after the '#' is the process instance number (you might have more than one dllhost). The thread you're looking for should have a process number that is the same as what you found in step 5.

  9. Use the arrow keys to find the thread that is consuming the most CPU, and note which instance it is.
  10. On the Perfmon toolbar, click the plus (+) button. In the Add to Chart dialog box, select the following items:

    Object = Thread
    Counter = ID Thread
    Instance = The instance of the thread noted in the previous step.

  11. Click Add, and then click Done.
  12. Note the last reading for the ID Thread, and exit Perfmon.
  13. Install UserDump on the system.
  14. At a command prompt, type the following command to change the folder to the Userdump folder:

    userdump [noted process ID]

If you need to consult a Microsoft Support Professional, zip the Userdump and arrange to send it with the following information:

  • Windows NT service pack
  • Microsoft Data Access Components (MDAC) version (if any)
  • Microsoft Distributed Transaction Coordinator (MS DTC) version
  • High CPU Utilization thread ID
  • SQL version and service pack (if any)
  • Oracle version, Client version, and Net Library version (if any)
  • Any additional patch or hotfixes that are currently used
  • Symbol files for your custom or third party components (if any)


REFERENCES

For additional information, click the article numbers below to view the articles in the Microsoft Knowledge Base:

250509 XADM: How to Use Userdump.exe to Capture the State of the Information Store


281630 How To Configure Visual Basic DLL Project Properties to Run in IIS, MTS, or COM+


For more information about Windows Debuggers, see the following Microsoft Web site:

Keywords: kbhowto kbbug kbdebug KB258833