Lotus Domino: Tuning English
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
- Have an implementation plan
- Know your infrastructure
- Divide the compounds
- Platform
- Notes Mail Statistics
- Network report
- Server Load Statistics
- 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
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
| ||||
Statistics |
| ||||
Interpretation |
| ||||
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
| ||||
Statistics |
| ||||
Interpretation |
| ||||
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
HTTP Active Threads
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)
Important to know
A long running PS thread indicates that the user is synching a large amount of data (no limits are set) Thread types to be concerned about:
- DS = Device Sync (Connection thread between Mobile device and Notes Traveler server)
- PS = Prime Sync (Connection thread between Notes Traveler server and User Mail server)
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=SERVER1/O=Company.000-001 = 1267 [01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SERVER1/O=Company.002-005 = 1 [01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SERVER1/O=Company.005-010 = 1 [01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SERVER1/O=Company.000-001 = 15902 [01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SERVER1/O=Company.001-002 = 1 [01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SERVER1/O=Company.002-005 = 1 [01997:00007-4127529840] Traveler.DCA.DB_OPEN.Time.Histogram.CN=SERVER1/O=Company.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
|
Statistics |
|
Interpretation |
|
Reference |
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 |
|
Interpretation |
|
Reference |
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 |
To implement, set the notes.ini parameter NLCACHE_SIZE equal to the number of bytes you want the maximum cache size to be. |
Statistics |
or you can use show nlcache [59600:00010-3163281152] NLCache version 4 [59600:00010-3163281152] CacheLookups: 7,744,563 [59600:00010-3163281152] CacheHits: 1,805,913 [59600:00010-3163281152] CacheMisses: 3,202,857 [59600:00010-3163281152] CacheNoHitHits: 2,735,793 [59600:00010-3163281152] CacheResets 0 [59600:00010-3163281152] Maximum Cache Size: 268,435,456 [59600:00010-3163281152] CacheSize: 41,581,976 6961 entries in Data Hash Table [59600:00010-3163281152] HashSize: 1,639,776 25 entries in View Hash Table [59600:00010-3163281152] CacheHitRate: 58 %
|
Interpretation |
Neither value should have reached Database.NAMELookupCacheMaxSize. If the numbers are close, increase the cache size |
Example |
NA |
Reference |
P.s.: Tip by @DanSilva NLCACHE_SIZE=67108864 Resolving the problem
NLCache_Size=134217728. ** Note default size in 8.5.3 64 Bit is 64 MB prior to this the default size was 16 MB.
Issue the following command via the Server Console: Show Stat database.* Review these results. Database.NAMELookupCacheMaxSize Database.NAMELookupCachePool.Used If used is near max size you may need to increase the pool accordingly. |
SERVER: Concurrent Tasks
PUT INFO HERE
Tune |
|
Statistics |
|
Interpretation |
|
Example |
NA |
Reference |
PLATAFORM: Platform Paging File
Tune |
|
Statistics |
|
Interpretation |
|
Example |
NA |
Reference |
NA |
PLATAFORM: Platform Disk
Tune |
By several parameters (bufferpool, cache, namelookup ... |
Statistics |
Platform.LogicalDisk.1.AssignedName=C points to the disk |
Interpretation |
|
Reference |
NA |
ROUTER: How many Mailboxes?
How many Mailboxes is necessary for my Domino Server
Tune |
Configuration Document |
Statistics |
|
Interpretation |
|
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 |
|
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 |
|
Interpretation |
|
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