|
|
(29 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| == Tunning ==
| | Moved to [[Lotus Domino: Tuning English]] |
| | |
| 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
| |
| | |
| | |
| | |
| === 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.
| |
| | |
| ----
| |
| | |
| | |
| === Cache Design Elements ===
| |
| | |
| To optimize the response time keeps Domino design elements in memory.
| |
| | |
| 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
| |
| | |
| {| border="1"
| |
| |
| |
| '''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
| |
| | |
| ==== 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 the'''Hitrate''' is near 100%, and'''DisplaceRate''' is 0%. Increasing the value of the field'''Maximum cached designs''' improves response-time.
| |
| | |
| ==== Reference ====
| |
| ----
| |
| | |
| === Cache User Info ===
| |
| | |
| To optimize the response time keeps Domino design elements in memory.
| |
| | |
| 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
| |
| | |
| {| border="1"
| |
| |
| |
| '''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
| |
| | |
| ==== 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 the'''Hitrate''' is near 100%, and'''DisplaceRate''' is 0%. Increasing the value of the field'''Maximum cached designs''' improves response-time.
| |
| | |
| ==== Reference ====
| |
| | |
| ----
| |
| | |
| === NSF Buffer Pool ===
| |
| | |
| Buffering Database I/O
| |
| | |
| ==== Statistics ====
| |
| | |
| * Database.Database.BufferPool.Maximum.Megabytes
| |
| * Database.Database.BufferPool.PerCentReadsInBuffer
| |
| | |
| ==== Interpretation ====
| |
| | |
| * Bad < 90% < PercentReadsInBuffer < 98% < Perfect
| |
| | |
| ==== 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.
| |
| | |
| ==== Reference ====
| |
| | |
| http://www-01.ibm.com/support/docview.wss?rs=899&uid=swg21286171
| |
| | |
| ----
| |
| | |
| === 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
| |
| | |
| | |
| {| border="1"
| |
| |
| |
| '''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.
| |
| | |
| | |
| | |
| ----
| |
| | |
| === Cluster Replicator ===
| |
| | |
| To prevent the replicas of the cluster de-synchronized, increasing the amount of tasks '''clrepl''' through the Notes.ini variable
| |
| | |
| {| border="1"
| |
| |
| |
| '''Tune'''
| |
| |
| |
| | |
| '''CLUSTER_REPLICATORS=X'''
| |
| | |
| |-
| |
| |
| |
| '''Statistics'''
| |
| |
| |
| | |
| * Server.ConcurrentTasks
| |
| * Server.ConcurrentTasks.Waiting
| |
| | |
| |-
| |
| |
| |
| '''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
| |
| | |
| | |
| ----
| |
| | |
| === Concurrent Tasks ===
| |
| | |
| PUT INFO HERE
| |
| | |
| {| border="1"
| |
| |
| |
| '''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
| |
| |}
| |
| | |
| | |
| ----
| |
| | |
| === Platform Paging File ===
| |
| | |
| | |
| {| border="1"
| |
| |
| |
| '''Tune'''
| |
| |
| |
| * OS Level
| |
| |-
| |
| | |
| |
| |
| '''Statistics'''
| |
| |
| |
| * Platform.PagingFile.Total.PctUtil
| |
| | |
| |-
| |
| |
| |
| '''Interpretation'''
| |
| |
| |
| | |
| * OK < 0% < PctUtil.Avg > 10% > BAD
| |
| |-
| |
| | |
| |
| |
| '''Example'''
| |
| |
| |
| NA
| |
| |-
| |
| |
| |
| '''Reference'''
| |
| |
| |
| NA
| |
| |}
| |
| | |
| | |
| ----
| |
| | |
| === Platform Disk ===
| |
| | |
| | |
| {| border="1"
| |
| |
| |
| '''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
| |
| |}
| |
| | |
| | |
| ----
| |