Analyzing Processor Activity
|
|
Reducing Single-Process Bottlenecks
If you cannot use another computer and you have access to the application source code, you can tune the application to increase efficiency. Start by using a profiler, an analysis tool that you can use to examine the run-time behavior of your programs. Profiling enables you to analyze how the application is spending processor time. The Platform Software Development Kit (SDK) includes tools and methods for profiling and optimizing applications, including instructions for developing performance counters to monitor the inner workings of your application. To tune an application to be less CPU-intensive, use SDK utilities such as Call Attributed Profiler (CAP) or File I/O Synchronization Win32 API Profiler (FIOSAP). You can also use APIMon and Kernprof, which are included on the Windows 2000 Resource Kit companion CD.
If tuning efforts do not reduce the application's load on your processor, or if you do not have access to the application source code, you can:
- Consider adding a processor or upgrading the one you have. If your application is multithreaded, adding a processor can alleviate a bottleneck because multithreaded applications can run on multiple processors. However, single-threaded applications will not benefit because the system cannot distribute their thread activity across processors; these applications need faster processors or need to run on a computer with extra processing capacity. In general, a faster CPU will probably result in a greater performance gain than installing additional processors because the management of the work performed by multiple CPUs also consumes processor time.
- Investigate the activity of threads in the process. For more information about examining thread behavior and changing thread scheduling patterns to ensure that the necessary processes get processor time, see "Threads in a Bottleneck" later in this chapter. This section also contains instructions for determining whether a process is single-threaded or multithreaded; this distinction is important in making an upgrade decision.
- If processor use continues to create a bottleneck even without the application that you first suspected, repeat the preceding steps and carefully monitor the processes that are active when the queues are longest.
- Consider replacing the application with one that has been optimized to run under Windows 2000.
© 1985-2000 Microsoft Corporation. All rights reserved.