Lotus Domino: Tuning English

From Wiki

Tuning

This wiki will be creating a series of articles outlining best practices for Lotus Domino environment.

I ask you to always return to this article will be updating as usual.

Steps

  1. Have an implementation plan
  2. Know your infrastructure
  3. Divide the compounds
    1. Platform
    2. Notes Mail Statistics
    3. Network report
    4. Server Load Statistics
  4. Have a baseline reference


GENERAL

GENERAL: Disabling the Collection of Statistics Platform

Domino statistics collection platform to display the Administrator. The collection does not consume much resources, but we're talking about tuning.

To disable the collection utize the following parameter in NOTES.INI.

Platform_Statistics_Disabled = 1

Reasons:

  • You do not want to collect statistics
  • On partitioned servers (DPAR), each server collects the same statistics. You can enable only in one partition and disable the others.

GENERAL: Disabling Full Text for Attachments Types

Tells the indexer not to index attachments with the XXX extension


FT_Index_Ignore_Attachment_Types=*.nsf,*.ntf,*.tif,*.sys,*.pag,*.img,*.wav,*.gif,*.jpg,*.dll,*.tar,*.exe,*.zip,*.au,*.mpg,*.mov,*.mp3,*.cca,*.dbd,*.p7m,*.p7s,*.wpl,*.bmp

Since version 5.0.5, Domino disable by default to following Attachment types: .NSF, .NTF , .SYS, .PAG, .IMG , .WAV , .GIF, .JPG, .DLL, .TAR, .EXE , .ZIP, .AU , .MPG, .MOV, .MP3 .


GENERAL: Disable BCC group expansion

The 'DISABLE_BCC_GROUP_EXPANSION' setting will disable BCC group expansion, thereby improving mail server performance.

DISABLE_BCC_GROUP_EXPANSION=1

DISABLE_BCC_GROUP_EXPANSION


HTTP: Cache Design Elements

To optimize the response time keeps Domino design elements in memory.

Tune

To change the parameters of Web Cache, Open the server document and go

Internet Protocols → Domino Web Engine → Memory Caches.

and change the field value

Field

Description

Maximum cached designs

Enter the number of database design elements to cache for users. The default is 128. When a user opens a database, Domino maps each design element name to an identification number. This mapping procedure takes time. Use this field to Specify how many elements you want to store in memory so the next time the user accesses That element, it is Immediately available.


Statistics

  • Domino.Cache.Design.Count
  • Domino.Cache.Design.DisplaceRate
  • Domino.Cache.Design.HitRate
  • Domino.Cache.Design.MaxSize

Interpretation

  • Good = HitRate >= 97%
  • Good = DisplaceRate = 0

Reference

http://www-01.ibm.com/support/docview.wss?rs=899&uid=swg21286171


Example To find out if you need to change this parameter, run the following command

 > Show stat domino.cache.design .*
 Domino.Cache.Design.Count = 128
 Domino.Cache.Design.DisplaceRate = 18.0328294698918
 Domino.Cache.Design.HitRate = 81.960226776015
 Domino.Cache.Design.MaxSize = 128

Observing these numbers we can deduce that the value of elements (Count) has reached the maximum (MaxSize), so elements in this cache are discarded ( DisplaceRate).

The optimal value for theHitrate is near 100%, andDisplaceRate is 0%. Increasing the value of the fieldMaximum cached designs improves response-time.


HTTP: Cache User Info

To optimize the response time keeps Domino design elements in memory.

Tune

To change the parameters of Web Cache, Open the server document and go

Internet Protocols → Domino Web Engine → Memory Caches.

and change the field value

Field

Description

Maximum cached users

Enter the number of users to cache. The default is 64. After a user successfully authenticates with a server, Domino stores in memory the user's name, password, and the list of groups to which the user belongs. Use this field to increase the number of users for whom Domino stores this information.


Statistics

  • Domino.Cache.User Cache.Count
  • Domino.Cache.User Cache.DisplaceRate
  • Domino.Cache.User Cache.HitRate
  • Domino.Cache.User Cache.MaxSize

Interpretation

  • Good = HitRate >= 97%
  • Good = DisplaceRate = 0

Reference

Example

To find out if you need to change this parameter, run the following command

 > Show stat domino.cache.user*
Domino.Cache.User Cache.Count = 68
Domino.Cache.User Cache.DisplaceRate = 0
Domino.Cache.User Cache.HitRate = 73.258795221749
Domino.Cache.User Cache.MaxSize = 64


Observing these numbers we can deduce that the value of elements (Count) has reached the maximum (MaxSize), so elements in this cache are discarded ( DisplaceRate).

The optimal value for theHitrate is near 100%, andDisplaceRate is 0%. Increasing the value of the fieldMaximum cached designs improves response-time.


- HTTP Threads:

Domino.Config.ActiveThreads.Max

CPU: Utilization

Platform.Process.ActiveDomino.TotalCpuUtil
Platform.Process.traveler.1.PctCpuUtil
Server.CPU.Count

-> PctCpuUtil / CPU.Count ~ aprox CPU usage by traveler task

Disk Queue

Server.Path.Data
Platform.LogicalDisk.X.AvgQueueLen.Avg
Platform.LogicalDisk.X.AvgQueueLen.Peak

Value of Platform.LogicalDisk.X.AvgQueueLen.Avg (X= Data directory^) above 0.2 indicates that the server is running into a limitation of physical resources

How to check Notes Traveler Performance when hosted on a VM http://www-01.ibm.com/support/docview.wss?uid=swg21615973

TRAVELER

Traveler.Push.Devices.ActiveSync
Traveler.Push.Devices.ActiveSync.Connected
Traveler.Push.Devices.HTTP
Traveler.Push.Devices.HTTP.Connected

HTTP Active Threads deve ser 1.2 vezes a qtde de Push Devices (ou o que o servidor deve suportar em caso de failover)


Histograma de query no DB2

Traveler.Database.Query.Histogram.**

Por exemplo, Traveler.Database.Query.Histogram.UpdateTimeSyncInDevice.000-001 = 202 se estiver muitos 005-010 ou acima sendo reportados, pode indicar um problema de conexão ao banco.

Database.Query.Histogram.GudSelect.0 Database.Query.Histogram.GudSelect.1 DCA.DB_OPEN.Time.Histogram.CN

DB2 Connectins

Traveler.DB.Connections = 4
Traveler.DB.Connections.Idle = 4
Traveler.DB.Connections.Max = 600
Traveler.DB.Connections.Peak = 24

TRAVELER: Mail Server Connections Histogram

[01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SRCBSA01010/O=BancodoBrasil.000-001 = 1267 [01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SRCBSA01010/O=BancodoBrasil.002-005 = 1 [01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SRCBSA01010/O=BancodoBrasil.005-010 = 1 [01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SRCBSA01011/O=BancodoBrasil.000-001 = 15902 [01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SRCBSA01011/O=BancodoBrasil.001-002 = 1 [01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SRCBSA01011/O=BancodoBrasil.002-005 = 1 [01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SRCBSA01011/O=BancodoBrasil.005-010 = 4

Deve ser monitorado para se houver muitas conexões em tempo 005-010 ou acima, pode indicar um problema de latência entre Traveler e Mail Server


TRAVELER: Thread Pool

Traveler.ThreadPool.GetThreadDelayTime.Alarm.00-02 = 29302
Traveler.ThreadPool.GetThreadDelayTime.DS.00-02 = 75977
Traveler.ThreadPool.GetThreadDelayTime.PS.00-02 = 137501
Traveler.ThreadPool.GetThreadDelayTime.TC.00-02 = 110
Traveler.ThreadPool.GetThreadDelayTime.VC.00-02 = 49603
Traveler.ThreadPool.GetThreadDelayTime.Worker.00-02 = 1493976

-> You can see if there is a long delay before a device synchronization thread is allocated. > 02-05 indicate a range (in seconds) that Http thread start. This implies that the current device thread count is sufficient for the load.


TRAVELER: Error on Console

Look at file NTSErrors.log

"Notes Traveler: SEVERE CN="
"Notes Traveler: WARNING CN="

TRAVELER: Sync Error

Traveler.DeviceSync.Count.200 = 89397
Traveler.DeviceSync.Count.408 = 201
Traveler.DeviceSync.Count.409 = 497
Traveler.DeviceSync.Count.503 = 4

Java Memory

Java memory management in Notes/Domino http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Java_memory_management_in_NotesDomino

HTTP/JVM Out of memory http://www-10.lotus.com/ldd/dominowiki.nsf/page.xsp?documentId=D43B6B44146BC7AC85257A2C006EED3E&action=openDocument

SERVER

SERVER: NSF Buffer Pool

Buffering Database I/O


Tune

NSF_Buffer_Pool_Size_MB=n

  • Version 8.5 64 bits = Default value 1024
  • Version 8 64 bits = Default value 1024
  • Version 8 32 bits = Default value 512

Statistics

  • Database.Database.BufferPool.Maximum.Megabytes
  • Database.Database.BufferPool.PerCentReadsInBuffer

Interpretation

  • 89% < Bad
  • 90% = OK
  • 91% < Good < 97%
  • 98% <= Excellent

Reference

Recommendations for setting NSF_BUFFER_POOL_SIZE_MB

New default limit on UBM size in Domino 8

Example

To find out if you need to change this parameter, run the following command

 > Show stat Database.Database.BufferPool.*
 Database.Database.BufferPool.Maximum.Megabytes = 1024
 Database.Database.BufferPool.MM.Reads = 24
 Database.Database.BufferPool.MM.Writes = 7
 Database.Database.BufferPool.Peak.Megabytes = 1023
 Database.Database.BufferPool.PerCentReadsInBuffer = 98.21

If the Database statistics Database.Database.BufferPool.PerCentReadsInBuffer is lower than 97%,then you should consider tuning this parameter.

SERVER: NSF Cache

To minimize the time lags involved with opening and closing databases on a server, each server uses a database cache.

The Notes.ini NSF_DbCache_Maxentries control how many databases can reside in the cache at a maximum.

This NSF database cache is limited to:

  • 10000 entries = Domino 5.x and 6.x.
  • 20000 entries = Domino 7.x and higher


Tune

NSF_DbCache_Maxentries=X

Statistics

  • Database.Database.BufferPool.PerCentReadsInBuffer
  • Database.DbCache.HighWaterMark
  • Database.DbCache.CurrentEntries
  • Database.DbCache.MaxEntries
  • Database.DbCache.OvercrowdingRejections

Interpretation

  • Good = HighWaterMark < MaxEntries
  • Good = 0 OvercrowdingRejections

Reference

http://www-01.ibm.com/support/docview.wss?uid=swg21279893

Example To find out if you need to change this parameter, run the following command

 > Show stat Database.Database.BufferPool.*
 Database.Database.BufferPool.Maximum.Megabytes = 1024
 Database.Database.BufferPool.MM.Reads = 24
 Database.Database.BufferPool.MM.Writes = 7
 Database.Database.BufferPool.Peak.Megabytes = 1023
 Database.Database.BufferPool.PerCentReadsInBuffer = 98.21

If the Database statistics Database.Database.BufferPool.PerCentReadsInBuffer is lower than 97%,then you should consider tuning this parameter.

 > Show statDatabase.DbCache.*
 Database.DbCache.HighWaterMark = 2227
 ...
 Database.DbCache.MaxEntries = 3072
 ...
 Database.DbCache.OvercrowdingRejections = 0
 Database.DbCache.Size = 10003

If the Database statistics DbCache.OvercrowdingRejections is high, then you should consider tuning this parameter.


SERVER: Increase Name Lookup Cache

Tune

  • NLCACHE_SIZE

To implement, set the notes.ini parameter NLCACHE_SIZE equal to the number of bytes you want the maximum cache size to be.

Statistics

  • Database.NAMELookupCachePool.Used
  • Database.NAMELookupCachePool.Peak
  • Database.NAMELookupCacheMisses
  • Database.NAMELookupCacheHits
  • Database.NAMELookupCacheMaxSize

Interpretation

  • Database.NAMELookupCachePool.Used is close to the Database.NAMELookupCachePool.Peak value
  • Database.NAMELookupCacheMisses remains above Database.NAMELookupCacheHits for hours
  • Database.NAMELookupCacheMaxSize with Database.NAMELookupCachePool.Peak and Database.NAMELookupCachePool.Used

Neither value should have reached Database.NAMELookupCacheMaxSize. If the numbers are close, increase the cache size

Example

NA

Reference

Domino 6 directory performance improvements



SERVER: Concurrent Tasks

PUT INFO HERE

Tune

  • Server_Pool_Tasks = n
  • Server_Max_Concurrent_Trans = m

Statistics

  • Server.ConcurrentTasks
  • Server.ConcurrentTasks.Waiting

Interpretation

  • Good = 0 Waiting

Example

NA

Reference

http://www-01.ibm.com/support/docview.wss?uid=swg21207456


PLATAFORM: Platform Paging File

Tune

  • OS Level

Statistics

  • Platform.PagingFile.Total.PctUtil

Interpretation

  • OK < 0% < PctUtil.Avg > 10% > BAD

Example

NA

Reference

NA


PLATAFORM: Platform Disk

Tune

By several parameters (bufferpool, cache, namelookup ...

Statistics

  • Platform.LogicalDisk.1.AvgQueueLen
  • Platform.LogicalDisk.1.PctUtil

Platform.LogicalDisk.1.AssignedName=C points to the disk

Interpretation

  • Good < 2% < AvgQueueLen > 5% > BAD
  • Good = PctUtil < 80%

Reference

NA


ROUTER: How many Mailboxes?

How many Mailboxes is necessary for my Domino Server

Tune

Configuration Document

Statistics

  • Mail.Mailbox.AccessConflicts =

Interpretation

  • Good = 0 No Conflict

Reference

NA


ROUTER: RouterDbCacheSize

Represents the number of entries allocated for the router database cache. If not used, the default is based on NSFBufferPoolSize (three per MB), i.e. three times bigger than NSFBufferPoolSize, and the maximum is capped to 20000 entries at startup, but reallocation may occur and the number of 20000 entries could exceed it. In brief: it represents a cache of opened mail database handles.

Tune

RouterDbCacheSize

Statistics

  • Mail.DBCacheAged =  ; the number of entries that had aged and been deleted
  • Mail.DBCacheEntries =  ; the current number of cache entries
  • Mail.DBCacheForcedOut =  ; the number of cached entries forced out due to lack of available cache
  • Mail.DBCacheHighWaterMark =  ; the highest number of entries that had been cached
  • Mail.DBCacheHits =  ; the number of times a requested db handle was already in cache
  • Mail.DBCacheMaxEntries =  ; the maximum number of entries (RouterDbCacheSize)
  • Mail.DBCacheReads =  ; the number of times cache was read

Interpretation


Reference

NA


CLUSTER: Cluster Replicator

To prevent the replicas of the cluster de-synchronized, increasing the amount of tasks clrepl through the Notes.ini variable

Tune

CLUSTER_REPLICATORS=X

Statistics

  • Replica.Cluster.SecondsOnQueue
  • Replica.Cluster.WorkQueueDepth
  • Replica.Cluster.Failed

Interpretation

  • Perfect < 10 < SecondsOnQueue > 15 > Bad
  • Perfect < 10 < WorkQueueDepth > 15 > Bad

Reference

NA

Example

Para saber se é necessário alterar este parâmetro, execute o seguinte comando

> show stat replica.cluster.*
 ...
 Replica.Cluster.SCR.QueueDepth.Avg = 0 
 Replica.Cluster.SCR.QueueDepth.Max = 155 
 ...
 Replica.Cluster.SecondsOnQueue = 2 
 Replica.Cluster.SecondsOnQueue.Avg = 18 
 Replica.Cluster.SecondsOnQueue.Max = 2558 
 ...
 Replica.Cluster.WorkQueueDepth = 0 
 Replica.Cluster.WorkQueueDepth.Avg = 13 
 Replica.Cluster.WorkQueueDepth.Max = 698

Ver também