Gregory engels nsd crash course - ilug10

46
NSD ‘Crash Course’ Gregory Engels, Kompurity ILUG 2010
  • date post

    14-Sep-2014
  • Category

    Education

  • view

    1.985
  • download

    1

description

My Presentation from the ILUG 2010 Belfast conference. Here the Abstract: "Come to this session to learn on real examples how to read and understand those NSD files that can give you so mush information for troubleshooting and debugging your Domino Servers, Notes Clients and even your Applications. You will learn how to find what files and documents has been open, what agents has been running and how much memory was available, as the last crash occurred. You will also see all kinds of tips and tricks around the system diagnostics, that will allow you to troubleshoot problems faster and more effective. "

Transcript of Gregory engels nsd crash course - ilug10

Page 1: Gregory engels   nsd crash course - ilug10

NSD ‘Crash Course’

Gregory Engels, KompurityILUG 2010

Page 3: Gregory engels   nsd crash course - ilug10

About meGregory EngelsBorn in Moscow, live in Frankfurt, Germany since 1989Been around Lotus Notes since 1998Advanced Certified Domino Developer and Admin and Security R5, R6, R7, R8Co-Author "Migrating Microsoft Exchange 2000/2003 to IBM Lotus Notes 7"Founder Kompurity http://www.kompurity.deSpecialize in Hosting, Infrastructure management

Blog: http://inotes.de

Twitter: dichter

Page 4: Gregory engels   nsd crash course - ilug10

Agenda

• NSD

• ADC

• Upgrading NSD

• LND

Page 5: Gregory engels   nsd crash course - ilug10

• Notes Systems Diagnostic

• binary on W32 and iSeries

• shell script nsd.sh on Unix

What is NSD

Page 6: Gregory engels   nsd crash course - ilug10

Running the NSD

• Manually

• Automatically as part of Fault Recovery

Page 7: Gregory engels   nsd crash course - ilug10

• Enabled by default

• Enable it in the Server document

• Go enable it now.

Fault Recovery

Page 8: Gregory engels   nsd crash course - ilug10

Help is on the way

• nsd -help

Page 9: Gregory engels   nsd crash course - ilug10

Automated Data Collection (ADC)

Page 10: Gregory engels   nsd crash course - ilug10

Enable in the Config Doc

Page 11: Gregory engels   nsd crash course - ilug10

Enable in Desktop Policy

Page 12: Gregory engels   nsd crash course - ilug10

Fault Reports DB

Page 13: Gregory engels   nsd crash course - ilug10

Put this in the nsd.ini

• canceldisable=1

• (BOFH tip of the day)

Page 14: Gregory engels   nsd crash course - ilug10

Real Life

• ADC Enabled 9 Month ago

• User Population c.a. 6000 Users

• 1700 Users have created at least 1 NSD

• c.a. 13000 Client NSD

• 13 Users (0.05%) created 1700 NSD (14%)

Page 15: Gregory engels   nsd crash course - ilug10

How often does Notes Crashes?

0

10

20

30

40

50

60

70

80

90

100

1 5 9 14 21 30 52 75 163 1258

Number of Users that had N CrashesOccurency

Page 16: Gregory engels   nsd crash course - ilug10

Number of NSDs per User

0

375

750

1125

1500

Occurences

Page 17: Gregory engels   nsd crash course - ilug10

NSD’s per Day

0

18

36

54

72

90

22.08.2009 25.08.2009 28.08.2009 31.08.2009 03.09.2009 06.09.2009 09.09.2009 12.09.2009 15.09.2009 18.09.2009 21.09.2009 24.09.2009

Page 18: Gregory engels   nsd crash course - ilug10
Page 19: Gregory engels   nsd crash course - ilug10

Upgrading NSD

Page 20: Gregory engels   nsd crash course - ilug10

• See TN #4013182 for ftp links

• See TN #1233676 for list of SPR’s fixed

• Version of NSD is <NotesVersion><Fixpack>.<YNNN>

• NNN = Days since year begin

• example: NSD 8.0.10.8057 (Release 8.0.1) = Feb 27 2008 (57 Days since Jan 01)

Page 21: Gregory engels   nsd crash course - ilug10

Reading the NSD log

Page 22: Gregory engels   nsd crash course - ilug10

Finding the log

• Logs are stored in the IBM_TECHNICAL_SUPPORT subdirectory

• in the Lotus Notes Domino Fault Reports Database lndfr.nsf

• ND6 - nsd_all_<Platform>_<Host>_MM_DD@HH_MM.log • ND7 -

nsd_<Platform>_<ServerName>_YYYY_MM_DD@HH_MM_SS.log

Page 23: Gregory engels   nsd crash course - ilug10

Contents of the NSD

• Rather verbose

• Process Info (Call Stack)

• Memcheck (Domino Memory Objects)

• System Information

• Environment Information

Page 24: Gregory engels   nsd crash course - ilug10

• Process Information (Call Stacks) – Process Information is composed of the list of all running processes system wide, followed by a list of all Domino specific processes.

• the code path involved in a particular problem.

Page 25: Gregory engels   nsd crash course - ilug10

• Memcheck (Domino Memory Objects) – The Memcheck section dumps information about Domino-specific structures.

• memory pools (both private and shared)

• list of open resources such as open database, open view, open documents, connected users, and open files.

Page 26: Gregory engels   nsd crash course - ilug10

• System Information – This section provides information regarding version of OS,

• kernel configurations, patch information, disk information, network connections, and memory usage.

Page 27: Gregory engels   nsd crash course - ilug10

• Environment Information:

• user environment,

• notes.ini,

• file listing

Page 28: Gregory engels   nsd crash course - ilug10

Finding the fault

• Look for the words FATAL, PANIC, ETC### FATAL THREAD 67/135 [ nSERVER:0908: 2692] ### FP=0x0ae5ec70, PC=0x6018eb23, SP=0x0ae5e2f8 ### stkbase=0ae60000, total stksize=262144, used stksize=2424 ### EAX=0x010d088c, EBX=0x00000000, ECX=0x00ba0000, EDX=0x00ba0000 ### ESI=0x0ae5e904, EDI=0x00001d34, CS=0x0000001b, SS=0x00000023 ### DS=0x00000023, ES=0x00000023, FS=0x0000003b, GS=0x00000000 Flags=0x00010202 Exception code: c0000005 (ACCESS_VIOLATION) Process ID: Thread ID

Page 29: Gregory engels   nsd crash course - ilug10

Reading the Callstack############################################################

### FATAL THREAD 1/4 [ncompact: 3044: 2620]### FP=0x0012e644, PC=0x60193297, SP=0x0012dacc, stksize=2936### EAX=0x00e3088c, EBX=0x00000000, ECX=0x00900000, EDX=0x00900000### ESI=0x0012e1d8, EDI=0x00d495d8, CS=0x0000001b, SS=0x00000023### DS=0x00000023, ES=0x00000023, FS=0x0000003b, GS=0x00000000 Flags=0x00010202Exception code: c0000005 (ACCESS_VIOLATION)############################################################@[ 1] 0x60193297 nnotes._Panic@4+631 (60a30013)@[ 2] 0x600027a6 nnotes._LockHandle@12+294 (3963e26,12e674,12e680)@[ 3] 0x600025e7 nnotes._OSLockObject@4+23 (60c7df40)@[ 4] 0x606c09cc nnotes.CArchSetPolicy::GetPrivateArchiveSettings+3404 (1)@[ 5] 0x606bf1a8 nnotes.CArchSetPolicy::GetArchiveSettings+1032 (0)@[ 6] 0x606be9f9 nnotes.CArchSetPolicy::Init+553 (33a0a99)@[ 7] 0x606c7554 nnotes._PolicyCheckServerArchiveEnabled@4+52 (a9)@[ 8] 0x606e2fc1 nnotes._CheckServerArchiveEnabled+113 (10900a9)@[ 9] 0x00402111 nCompact._CompactFile@16+529 (0,a9,81000000,0)@[10] 0x00401b61 nCompact._AddInMain@12+2913 (3,3,398644)@[11] 0x004028cf nCompact._NotesMain@8+47 (3,400000)@[12] 0x004029d6 nCompact._notes_main+214 (0,0)@[13] 0x004028f6 nCompact._main+22 (3,3b2da0)@[14] 0x00402cc1 nCompact._mainCRTStartup+197 (0,0)@[15] 0x7c816ff7 KERNEL32.RegisterWaitForInputIdle+105 (402bfc,0)

Pid : Tid

Page 30: Gregory engels   nsd crash course - ilug10

Finding the Resources

• Search for “Open Databases”

• Search for “Open Documents”

Page 31: Gregory engels   nsd crash course - ilug10

DBH NOTEID HANDLE CLASS FLAGS IsProf #Pools #Items Size Database

531 7330 0x24ff 0x0001 0x0200 Yes 1 4 2984 d:\notedata\drmail\jsmith.nsf

Open By: CN=John Smith/O=ACME/C=US

Flags2 = 0x0404

Flags3 = 0x0000

OrigHDB = 531

First Item = [ 9471: 836]

Last Item = [ 9471: 1228]

Non-pool size : 0

Page 32: Gregory engels   nsd crash course - ilug10

Note Class Description

• 0x0001 Data Note (document)

• 0x0004 Form Note

• 0x0008 View note

• 0x0040 ACL Note

• 0x0200 Agent Note

• 0x0800 Replication Formula Note

Page 33: Gregory engels   nsd crash course - ilug10

Search for VTread info

• Search on KEYWORDs “Resource Usage” or “Resource Usage Summary”

• Search on KEYWORD “Process” until you located the necessary process ID

• Search on the PHYSICAL THREAD ID of the thread you are interested in (cosection after you have looked at call stacks)

Page 34: Gregory engels   nsd crash course - ilug10

Troubleshooting NSD

Page 35: Gregory engels   nsd crash course - ilug10

• Try NSD -info

• If this runs to completion, perhaps there is a problem with the pid.nbf file

• Try upgrading NSD

• Check if symbols are installed

• lotusnotes.sym

Page 36: Gregory engels   nsd crash course - ilug10

LND Tool

Page 37: Gregory engels   nsd crash course - ilug10

• See TN # 4019151 for download link

• ftp://ftp.software.ibm.com/software/lotus/tools/LND_2.8_Setup.zip

Page 38: Gregory engels   nsd crash course - ilug10
Page 39: Gregory engels   nsd crash course - ilug10
Page 40: Gregory engels   nsd crash course - ilug10

Auto KB Seatch

Page 41: Gregory engels   nsd crash course - ilug10

See the Process Resources

Page 42: Gregory engels   nsd crash course - ilug10

Works on Right-Click in Explorer

Page 43: Gregory engels   nsd crash course - ilug10

Questions

Page 44: Gregory engels   nsd crash course - ilug10

Thank You!

• Please fill out the evaluation (so I can get back next year)

• Contact: Gregory.Engels ※ kompurity.deBlog http://inotes.detwitter: dichter

Page 45: Gregory engels   nsd crash course - ilug10

Backup

Page 46: Gregory engels   nsd crash course - ilug10

NSD parameters

• nsd –stack (collects only call stacks, speeds execution)

• nsd –info (collects only system info)

• nsd –noinfo (collects all but info)

• nsd –memcheck (collects only memcheck info)

• nsd –nomemcheck (collects all but memcheck)

• nsd –perf (collects process memory usage)

• nsd –noperf (collects all but performance data)

• nsd –handles (collects OS level handle info)

• nsd –nohandles (collects all but handle info)

• nsd –kill (kills all notes process and associated memory)

• nsd –monitor (attaches and waits for exceptions)

• nsd –p (runs against a specific process – call stacks only)