domino statistiken verstehen und nutzen (teil 1) - 41. dnug konferenz

34
Marco Hiltebrand (Lead IT, RICOH SCHWEIZ AG)

Upload: panagenda

Post on 17-Jul-2015

165 views

Category:

Software


2 download

TRANSCRIPT

Marco Hiltebrand (Lead IT, RICOH SCHWEIZ AG)

2

3

4

5

6

7

IBM Connections

IBM Notes

8

10

11

• Admin Client

• Server auswählen Server tab Statistics Subtab

• Theoretisch auch Server Status Server Console

sh sta

oder auch

„sh sta mail“ oder sh „sta mail.trans*“

• Servertasks

• Statistics Log Task (statlog)

• Cataloger Task (catalog)

12

Es gibt vier Arten von Statistiken:

• Statische Statistiken, die sich nach einem Serverstart nicht ändern

• z.B. Disk.D.Size, Server.Version.Notes

• Momentaufnehmende Statistiken, die einen aktuellen Zustand beschreiben

• z.B. Mem.Free, Server.AvailabilityIndex

• Berechnete Statistiken (seit dem letzten Serverstart)

• z.B. SMTP.SessionDuration.Ave/Max

• Wachsende Statistiken (seit dem letzten Serverstart)

• Mail.TotalKBTransferred.SMTP, Server.Trans.Total

13

14

Schwer bis nicht unter Laborbedingungen testbar

Fangen Sie mit offensichtlichen / einfachen Dingen an

Notieren Sie sich Einstellungen bevor Sie diese ändern

Bedenken Sie mögliche Wechselwirkungen

„Zuviel des Guten“ kann Performance verschlechtern,

bis hin zu „Out of Memory“ bedeuten

Drehen Sie nicht an mehreren Schrauben gleichzeitig

es sei denn, es ist absolut notwendig / so „dokumentiert“

Beobachten Sie Ihre Server nach Änderungen eine

(sinnvolle) Zeit lang

Werten Sie aus, ob es Ihrem Server besser geht

„Google“

Denken Sie bitte mit

Trauen Sie sich

Das hier ist erst der Anfang – bleiben Sie neugierig!

15

Viele der nachfolgenden Statistiken sind mit einem „einmaligen“ ‚sh sta‘ nicht ausreichend

erfassbar; die Werte sollten bzw. müssen auf einem Zeitstrahl ausgewertet werden

Nur so ist greifbar, ob – und wann – es sich um dauerhafte / wiederkehrende Probleme handelt

Nur so ist tatsächlich überprüfbar, ob Änderungen helfen oder nicht (oder „verschlimmbessern“)

Ein Bild sagt mehr als tausend Worte …

Mit (leider größeren)

Einschränkungen können Sie

sich mit dem Admin Client

behelfen …

Ohne Einschränkungen geht

es nur mit hohem manuellen

Aufwand oder Zusatz-Lösungen

16

17

18

ViewRebuildDir & Disk Optimierungen

• Allem voran: freier Plattenplatz(„30%“ um Fragmentierung zu vermeiden)

• Jeweils eigene Disks für …

– Translog

– Data

– Ggf. page file/OS eigene disk

– „ViewRebuildDir“=…view indexing auf eigene disk

– Ab 8.5.3. ggf. .ft-Verzeichnisse(so nötig/gewünscht)

– DAOS („günstig“)

19

Server.Availability

• Sagt in % aus wie verfügbar = „antwortbereit“ ein Server ist (response times)

• Spätestens ab < 30% Verfügbarkeit wird es meistens problematisch;WENN denn der Availability-Index überhaupt stimmt … (Nur!) wenn der Server gut beschäftigt ist: ‚sh ai‘ auf Console;

gibt Empfehlung zur Anpassung von SERVER_TRANSINFO_RANGE in notes.ini

• Ab Notes 8.5 empfiehlt sich:

– notes.ini: Server_MinPossibleTransTime=1500

– notes.ini: Server_MaxPossibleTransTime=20000000

Wichtig:loadmon.ncf löschenwenn Server runter-gefahren ist, um alteWerte zu löschen

20

Monitor.* Warnungen im Auge behalten; Beispiele

• Monitor.Last.ADMIN PROCESS.Warning(High)Text = Disk space statisticscould not be found on Servername/Cert.

• Monitor.Last.EVENT MONITOR.Warning(High)Text = Event: Error adding eventdocument to Domino Domain Monitoring: Event correlation cache is full. Youcan increase its size via the NOTES.INI settingEVENT_CORRELATION_POOL_SIZE.

• Monitor.Last.INDEX ALL.Warning(High)Text = Error updating view '#4538' inmail\nameabc.nsf: The single copy template associated with this databasecannot be located.

• Monitor.Last.SMTP SERVER.FailureText = SMTP Server: Initializationfailure: Message Queue name already in use.

• Monitor.Last.STATISTICS.Warning(High)Text = Unable to update activitydocument in log database for mail\namexyz.nsf: In Datenbank kann nichtgeschrieben werden, da die Datenbank die erlaubte Größeüberschreiten würde.

21

Server.Sessions.Dropped

• Gibt an, wie oft seit dem letzten Serverstart Sessions ‚gedropped‘ wurden

• Verursacht durch „Drop all“ und/oder Client-seitigem Ctrl+Break(Frust-/Problem-Indikator)

• Server.Sessions.Dropped = 25407

• 28.6. - 18.10 = 4*30=120 Tage

• 25407/120=211 Sessions dropped / day

• Weiterführend in Verhältnis zu Peak # of users setzen

„anderes“

Problem

„Drop all“

22

Platform.LogicalDisk.*

Platform.LogicalDisk.1.AssignedName = DPlatform.LogicalDisk.1.AvgQueueLen = 0Platform.LogicalDisk.1.AvgQueueLen.Avg = 0,01Platform.LogicalDisk.1.AvgQueueLen.Peak = 1,01Platform.LogicalDisk.1.BytesReadPerSec = 0Platform.LogicalDisk.1.BytesWrittenPerSec = 10.172,49Platform.LogicalDisk.1.PctUtil = 0,22Platform.LogicalDisk.1.PctUtil.Avg = 0,86Platform.LogicalDisk.1.PctUtil.Peak = 101,07Platform.LogicalDisk.1.ReadsPerSec = 0Platform.LogicalDisk.1.WritesPerSec = 2,07

Platform.LogicalDisk.2.AssignedName = CPlatform.LogicalDisk.2.AvgQueueLen = 0,01Platform.LogicalDisk.2.AvgQueueLen.Avg = 0,73Platform.LogicalDisk.2.AvgQueueLen.Peak = 34,74Platform.LogicalDisk.2.BytesReadPerSec = 17.272,75Platform.LogicalDisk.2.BytesWrittenPerSec = 63.697,52Platform.LogicalDisk.2.PctUtil = 1,11Platform.LogicalDisk.2.PctUtil.Avg = 72,8Platform.LogicalDisk.2.PctUtil.Peak = 3.473,81Platform.LogicalDisk.2.ReadsPerSec = 2,58Platform.LogicalDisk.2.WritesPerSec = 7,3

InterpretationGUT < 2% < AvgQueueLen > 5% > SCHLECHT (1-100% = 0,01 – 1,0!)GUT = PctUtil < 80% (1-100% = 1-100)HINWEIS: ggf. durch # Spindeln zu dividieren SAN/NAS

LösungDiverse Parameter (bufferpool, cache, namelookup), und OS / Disk Tuning

23

Platform.LogicalDisk.#.PctUtil

24

Mail.Mailbox.*

• (Mail.Mailbox.AccessConflicts/Mail.Mailbox.Accesses) x 100

• Muss < 2 sein; ansonsten eine weitere Mailbox(ab vier / fünf Mailboxen wird der „Benefit“ zunehmend geringer)

• Beispiel:

• Mail.Mailbox.AccessConflicts = 1636Mail.Mailbox.Accesses = 189864

• = 0,86 = ok

25

Update.PendingList

• Update.PendingList = Anzahl von Ansichten die auf Aktualisierung warten

• WennUpdate.PendingList„laufend“ > 0, dann …

• Notes.ini:Update_Fulltext_Thread=1FTUPDATE_IDLE_TIME=4

Hintergrund:

• Wenn Sie viele Anwendungen haben …

• … und einen vielbeschäftigtenUpdate Task

– View updates sind beeinträchtigt, solange Full Text Index Aktualisierungen in Arbeit sind

• FTI Update von View Update trennen– FTI erfolgt dann in eigenem Memory Thread

• Verbessert Performance

• Update_Fulltext_Thread=1

Wenn wir schon beim Thema Volltext-Index sind:Sie können den FTI thread aus dem limitierten Domino update pool isolieren:

ftg_use_sys_memory=1Der FTI thread bekommt dann Memory vom OS pool

Gibt Domino System Memory frei

26

Database.Database.BufferPool.*

• Database.Database.BufferPool.PerCentReadsInBuffer = 78,96

• SCHLECHT < 90% < PercentReadsInBuffer < 98% < PERFEKT

• 99.9% ist schlecht ...– Führt meist dazu, dass zuviele Anfragen auf Disk rausgeschrieben werden

– Der Server benötigt einen größeren BufferPool

• Lösung: notes.ini NSF_Buffer_Pool_Size_MB=n (in MB)─ Default: 512 MB

27

Database.DbCache.*

• Database.DbCache.CurrentEntries = 1647Database.DbCache.HighWaterMark = 1691Database.DbCache.MaxEntries = 1536Database.DbCache.OvercrowdingRejections = 0

• GUT = HighWaterMark < MaxEntriesGUT = 0 OvercrowdingRejections

• Lösung:– notes.ini NSF_DbCache_MaxEntries = n

• Default: NSF_BUFFER Pool size x 3

28

Replica.Cluster.*

• Replica.Cluster.FailedReplica.Cluster.SecondsOnQueueReplica.Cluster.WorkQueueDepth

• PERFEKT < 10 < SecondsOnQueue > 15 > SCHLECHTPERFEKT < 10 < WorkQueueDepth > 15 > SCHLECHT

• Lösung:– Weitere Cluster Replikatoren

hinzufügen

– Auslastung der Cluster-Serveroptimieren (z.B. aktive Userim Cluster aufteilen /Load Balancing)

29

Server.Trans.PerMinute

• Server.Trans.PerMinute=956Server.Users = 26 956/26=36,7

• HEAVY < 30 < Trans.PerMinute (per User) > 10 > LIGHT

• Lösung:– Last erzeugende User identifizieren (db usage-View!)

30

Database.NAMELookupCache*

• Database.NAMELookupCacheCacheSize = 2.513.328Database.NAMELookupCacheHits = 24.628.339Database.NAMELookupCacheMisses = 48.160.502

• WICHTIG: NoHitHits!

• Miss > Hits: PRÜFEN

• Cache zu klein oder zu groß(!)

ini: NLCache_Size=16000000

31

Server.ConcurrentTasks*

• Server.ConcurrentTasksServer.ConcurrentTasks.Waiting

• Waiting sollte NULL sein

• Lösung:─ Server_Pool_Tasks = n ( z.B. 80)─ Server_Max_Concurrent_Trans = m

(z.B. Server_Pool_Tasks * Anzahl Ports)

32

Platform.PagingFile.Total.*

Platform.PagingFile.Total.PctUtil = 0,28Platform.PagingFile.Total.PctUtil.Avg = 0,14Platform.PagingFile.Total.PctUtil.Peak = 0,8

OK < 0% < PctUtil.Avg > 10% > SCHLECHT

OS Level tuning, Check Memory

Hinweis: Wenn ‚sh sta’ keine Platform.*Statistiken ausgibt Admin-Hilfe

33

DAOS. Object.Attach_DAOSCreate The number of attachments created in DAOS.

DAOS. Object.Attach_DAOSOptimizedCreateLocal

The number of attachments that did not need to be copied between Notes® applications located on the same Domino server (for example, copied from MAIL.BOX to a recipient's mail file) because the objects already existed in the DAOS repository. This statistic shows intra-server savings from optimization of object copying.

DAOS. Object.Attach_DAOSOptimizedCreateRemote

The number of attachments on the server that did not need to be sent over the network from remote clients or servers because the objects already existed in the DAOS repository. This statistic shows inter-server savings from optimization of object copying.

DAOS. Object.Attach_NSFCreate The number of attachments created in the NSF because they did not qualify for storage in DAOS, typically because they were smaller than the DAOS minimum object size.

DAOS. Object.Attach_TotalCreated Total number of attachments listed by the Object.Attach_DAOSCreate, Object.Attach_NSFCreate, Object.Attach_DAOSOptimizedCreateLocal, and Object.Attach_DAOSOptimizedCreateRemote statistics.

DAOS.Object.CloneDeclined The number of times a DAOS network optimization request was denied

DAOS.Object.CloneRequests The number of times a DAOS network optimization request was attempted

DAOS.Object.Delete The number of attachment delete requests for attachments stored in DAOS

34

35