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

  • 3086409
  • 06-Feb-2008
  • 27-Apr-2012

Environment

Novell NetWare
Novell Open Enterprise Server (OES)

Situation

High utilisation
High utilization
Server process
Service process
How do you find out what a server process is doing?

Resolution

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 9,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 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 Monitor B6F6A400 Delayed DS.NLM 0.6%
Java_891 ZenSocket 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.

.

Additional Information


Formerly known as TID# 10099960