5.2 Profiling CPU Utilization and Accessing Additional Debug Options

The Profiling and Debug Information page lets you view information about active and suspended threads, their states, the owning NetWare® Loadable Module™ (NLM) programs, and execution times.

This information can help you identify processes that might be running abnormally on a server, such as processes that use too much CPU time. Processes that run abnormally might cause the server to abend. Sometimes you can temporarily resolve high-utilization problems on the server by identifying the offending thread and its parent NLM, and then unloading and reloading the NLM.

To access the Profiling and Debug Information page, click the Diagnose Server > Profile / Debug link in the navigation frame.

From this page, you can do the following tasks:

5.2.1 Viewing CPU Execution Profile Data by Thread

When you access the Profiling and Debug Information page, the Execution Profile Data by Thread table is the default view displayed.

The Thread Name column shows the name of the thread being executed.

Thread ID and Thread State detailed information is provided mostly to assist code developers in identifying and debugging problems with their code. At the administration level, this information is usually helpful in identifying problems with a specific NLM or with threads causing the server to hang or run slow.

If the thread was suspended by Abend Recovery, then the information includes details about the thread state at the time it was suspended.

Table 5-3 Tasks and Procedures for Viewing Thread Debugging Information

To

Do This

Get more information about a specific thread

Click the thread-name link for that thread

Get information about the NLM program that owns the thread

Click the NLM program name

Profile where a thread is spending its time running

Click the Execution Time link for that thread.

This lists the nearest symbols and might help identify the component that is using an unusually high volume of CPU cycles.

5.2.2 Viewing CPU Execution Profile Data by NLM

In the CPU Execution Profile Data by NLM view, you can see a 1/2-second profile of the server operating system as it is executing, the place where it is executing, and the NLM programs that the processor is spending its time in.

If the server is idle, the main NLM programs listed will be lsl.nlm and server.nlm.

The percentage values shown in these tables are a detail of the overall sever's CPU utilization. If Processor 0 utilization is at 10 percent, the information on this page shows the breakdown of that 10 percent utilization.

Table 5-4 Tasks and Procedures for Viewing NLM Debugging Information

To

Do This

View CPU Execution Profile Data by NLM

Click the Profile CPU Execution by NLM link on the Profiling and Debug Information page.

See where the processor is spending time within a specific NLM program

Click the link in the Execution Time column for that NLM.

For more information about the NLM program, click the name for the program.

5.2.3 Viewing Detailed Thread Information

This information is usually helpful in identifying problems with a specific NLM or with threads causing the server to hang or run slow.

Table 5-5 Tasks and Procedures for Viewing Detailed NLM or Thread Debugging Information

To

Do This

View a list of all the threads in the system

Click the Thread Information link on the Profiling and Debug Information page

Get more information about a specific thread

Click the thread-name link for that thread

5.2.4 Performing Additional Debug Operations

If you are developing modules to run on NetWare and you want to access additional debug options, click the Additional Debug Options link on the Profiling and Debug Information page.

On the Additional Debug Options page, you can do the following tasks at the specific location while the server is still running by selecting one of the following tasks (options), typing the applicable value in the Symbol or Address for selected debug operation field, then clicking Execute:

  • Profile processor execution
  • Profile calls to a specific procedure
  • Disassemble code
  • Dump memory
  • Dump stack information
  • Profile processor misaligned memory references
  • Profile processor branch taken or not taken mispredictions
  • Profile processor partial register still clocks
  • Profile processor L2 cache misses
  • Profile processor divides
  • Profile processor multiplies