How do you find out what a server process is doing?

Looking in MONITOR.NLM -> Kernel -> Busiest Threads we see that one particular Server Process (Server 3 in the example, below) is particularly busy.

  NetWare 6 Console Monitor  12.01.9                  NetWare Loadable Module
  Server name: 'PINK' in Directory tree 'FLOYD'
  Product: Novell Netware, V6.5 Support Pack 3 - CPR Release

                Busiest Threads and Interrupt on Processor 0                  

   Server 3                                                       1,753,887   
   Server 2                                                       1,690,413   
   Cache Pool:0                                                     128,972   
   Elapse Time Ager                                                 121,486   
   Java_513 HTTP-Socket-Listener                                     55,619   
   Java_359 WSTimer:VSSManager                                       40,785   
   MONDATA.NLM     2                                                 23,695   
   MONITOR updates                                                   20,763   
   Java_769 Watcher                                                  19,256   
   Server 00:22                                                      18,669   
   Java_891 ZenSocketBuffer                                          16,541   
   OS Allocated Bus Interrupt                                        15,900   
   RDB Send Process                                                  13,388   
   Java_744 Watcher                                                   9,459   
   Java_359 Watcher                                                   5,671   
   Java_513 Watcher                                                   5,248   
   Java_381 Watcher                                                   5,182   

Esc=Previous list   Alt+F10=Exit                                       F1=Help

Go to NoRM -> Diagnose Server -> Profile/Debug -> and find the Server 3 process:

Execution Profile Data by Thread
Thread Name              Thread ID Thread State         Parent NLM   Execution Time
Server 3                 B2FE73E0  Waiting for work     SERVER.NLM   50.7 %
Server 2                 B2FDC360  Waiting for work     SERVER.NLM   44.4 %
DB Monitor               B66C35E0  Delayed              DS.NLM       1.4 %
httpexpThread31          41D8D380  Delayed              HTTPSTK.NLM  0.7 %
SMI Connection Monitor   B6F6A400  Delayed              DS.NLM       0.6 %
Java_891 ZenSocketBuffer 4548B5C0  Blocked on Semaphore JAVA.NLM     0.4 %
Java_513 Watcher         42B402E0  Blocked on Semaphore JAVA.NLM     0.2 %
Server 00:12             B7AF8200  Waiting for work     SERVER.NLM   0.2 %
Java_891 Watcher         456E9320  Blocked on Semaphore JAVA.NLM     0.2 %
Java_868 Watcher         44D53080  Blocked on Semaphore JAVA.NLM     0.1 %
Java_744 Watcher         44F7B3A0  Blocked on Semaphore JAVA.NLM     0.1 %
Java_359 Watcher         42EA8140  Blocked on Semaphore JAVA.NLM     0.1 %
Java_381 Watcher         4187A2A0  Blocked on Semaphore JAVA.NLM     0.1 %
Java_769 Watcher         450E0160  Blocked on Semaphore JAVA.NLM     0.1 %

Make a note of its Thread ID - in this case it is B2FE73E0.
Next, start up an NCP Trace on the server:
    ncp trace on ncptrace.txt
Which will trace all NCP calls to sys:ncptrace.txt
After tracing for a few minutes, turn it off:
   ncp trace off
Open up sys:ncptrace.txt in an editor and search for the Thread ID number you noted, above (B2FE73E0):
###### TRACE (Station=0 Task=10 Seq.=230, NCP 36 2) TID=B2FE73E0 ######
Scan NCP Ext. by Name (Ext#=NLS License Service Provider)
###### TRACE (Station=0 Task=10 Seq.=232, NCP 36 2) TID=B2FE73E0 ######
Scan NCP Ext. by Name (Ext#=NLS License Service Provider)

This shows which connection (Station=0) is using this Server Process and other NCP details.


Informacja z serwisu