
Chapter 7 Troubleshooting the System 153
2. By charting the object counter Threads, it is evident that the thread count
grows in a manner similar to the tagged pool memory allocations and bytes
listed in Step 1. Depending on the amount of threads that are created, the
object counter Threads can jump to a high value immediately.
3. The object Process helps determine which process is causing the leak. Select
object counters Pool Nonpaged Bytes, Pool Paged Bytes, and Thread Count.
Chart all instances of these counters. The process leaking memory charts in a
manner similar to the pool memory charted in Step 1.
Identifying Memory Leaks in NT Services
Although Performance Monitor usually provides the necessary information to
determine which process is creating a pool leak, it does not always provide the
information necessary to determine the exact cause of a memory leak. A trend that
shows a memory leak can often be identified but an exact process is not always
identifiable as the cause of the memory leak.
If the process leaking memory is a service, you can identify which service it is by
stopping different services while using Performance Monitor to monitor the
number of threads running. The number of threads running depends on many
factors, but the number grows larger as the process leaking memory continues to
run.
Û
ÛÛ
Û To determine which service is leaking memory
1. Run Performance Monitor and add the Threads counter for the object type
Object to the chart.
2. From Control Panel, double-click Services.
3. Tile the windows so you can see both Performance Monitor and the Services
dialog box.
4. Stop and start the active services one at a time.
If the service that is leaking memory has been running long enough, there will
be a drastic reduction in threads when the service is stopped.
If no services are leaking memory, the leak could be caused by a regular
program. Repeat the above procedure, but instead of stopping services, close and
open all active programs one at a time.
Note
Comentarios a estos manuales