Lotus Traveler: Tuning English: Difference between revisions

From Wiki
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Lotus Traveler Thread Pools ==
= Lotus Traveler Thread Pools =


=== Description ===
== Description ==


Lotus Notes Traveler has four thread pools that can be tuned:
Lotus Notes Traveler has four thread pools that can be tuned:
Line 10: Line 10:
* '''HTTP threads''' - Used by the HTTP task, one per HTTP connection.
* '''HTTP threads''' - Used by the HTTP task, one per HTTP connection.


== Important to know ==


== '''GENERAL:''' Optimizing Name lookup ==
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)
 
= '''GENERAL:''' Optimizing Name lookup =


A good way to optimize Name lookup, is to configure the minimum number of characters in the search string required to perform a search.
A good way to optimize Name lookup, is to configure the minimum number of characters in the search string required to perform a search.
Line 18: Line 24:




== Traveler Availability Index ==
= Traveler Availability Index =


Availability Index (AI) used by Traveler servers in the pool to balance load.?
Availability Index (AI) used by Traveler servers in the pool to balance load.?
Line 38: Line 44:
CPU percentage over last 15 minutes.
CPU percentage over last 15 minutes.


=== System stat results ===
== System stat results ==


[http://www-10.lotus.com/ldd/dominowiki.nsf/dx/System_stat_results_A853UP1 System stat results]
[http://www-10.lotus.com/ldd/dominowiki.nsf/dx/System_stat_results_A853UP1 System stat results]


=== Default Values ===
== Default Values ==


Variables at file ''Domino data directory\traveler\cfg\NTSConfig.xml''.
Variables at file ''Domino data directory\traveler\cfg\NTSConfig.xml''.
Line 76: Line 82:




=== How to determine the current number of active devices ===
== How to determine the current number of active devices ==


Checkout for '''Push.Devices.Total''' statistics. To find out if you need to change this parameter, run the following command
Checkout for '''Push.Devices.Total''' statistics. To find out if you need to change this parameter, run the following command
Line 86: Line 92:




=== How to determine the current number of active HTTP threads ===
== How to determine the current number of active HTTP threads ==




The current number of active HTTP threads allocated by the Domino web server at startup can be found in the Server document on the Internet Protocols -> HTTP tab in the Number active threads field.
The current number of active HTTP threads allocated by the Domino web server at startup can be found in the Server document on the Internet Protocols -> HTTP tab in the Number active threads field.


== Guidelines ==
= Guidelines =
The following are general guidelines for the relationships between the number of threads in each of the thread pools.
The following are general guidelines for the relationships between the number of threads in each of the thread pools.


Line 98: Line 104:
* HTTP threads should be 1.2 times either the number of device sync threads or the number of ActiveSync devices, whichever is larger.
* HTTP threads should be 1.2 times either the number of device sync threads or the number of ActiveSync devices, whichever is larger.


=== Statistics ===
== Statistics ==


{| border="1"
{| border="1"
Line 163: Line 169:




== Cache User Info - HTTP Maximum Cached Users - 64 bits only ==
= Cache User Info - HTTP Maximum Cached Users - 64 bits only =


To optimize the response time keeps Domino design elements in memory.
To optimize the response time keeps Domino design elements in memory.
Line 208: Line 214:
|}
|}


=== Example ===
== Example ==


To find out if you need to change this parameter, run the following command
To find out if you need to change this parameter, run the following command
Line 224: Line 230:




== Deciding which server performs the lookup ==
= Deciding which server performs the lookup =


By default, the lookup is performed against the user's mail server. This is done to reduce the configuration needed on the Traveler server and to provide more consistent results with a Notes client.  
By default, the lookup is performed against the user's mail server. This is done to reduce the configuration needed on the Traveler server and to provide more consistent results with a Notes client.  
Line 231: Line 237:


* NTS_TRAVELER_AS_LOOKUP_SERVER=True
* NTS_TRAVELER_AS_LOOKUP_SERVER=True
= 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


= Ver também =
= Ver também =
Line 243: Line 335:
[[Category: IBM Domino]]
[[Category: IBM Domino]]
[[Category: Lotus Domino]]
[[Category: Lotus Domino]]
[[Category: IBM Traveler]]
[[Category: Traveler]]
[[Category: Traveler]]

Latest revision as of 14:36, 6 March 2018

Lotus Traveler Thread Pools

Description

Lotus Notes Traveler has four thread pools that can be tuned:

  • Prime sync threads - Determine if changes to user mail files need to be synchronized to user devices.
  • Device sync threads - Synchronize data between Domino mail servers and user devices.
  • Worker threads - Used internally in the device synchronization process.
  • HTTP threads - Used by the HTTP task, one per HTTP connection.

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)

GENERAL: Optimizing Name lookup

A good way to optimize Name lookup, is to configure the minimum number of characters in the search string required to perform a search.

NTS_LOOKUP_MIN_LENGTH=3


Traveler Availability Index

Availability Index (AI) used by Traveler servers in the pool to balance load.?

The AI range can be from 100 to -200
  • 100 to 0 Normal processing range (base AI 100)
  • 0 to -100 Traveler server is in constrained state (base AI 0)
    • Constrained state is when the server recognizes it is overloaded and starts send 503 server

busy responses in attempt to recover.

  • 00 to -200 Traveler server is unavailable (base AI -100)
    • Administrator has marked server as unavailable using tell command.

? The AI is computed by subtracting the larger of the memory usage and CPU usage from the Base AI. Native memory is the percentage of Native memory use vs physical memory Average CPU percentage over last 15 minutes.

System stat results

System stat results

Default Values

Variables at file Domino data directory\traveler\cfg\NTSConfig.xml.


Thread pool name

Default Value

TSS_PRIMESYNC_THREADS

10

TSS_SYNC_THREADS

50

WORKER_THREADS

100 (should always be double the TSS_SYNC_THREADS value)

HTTP Threads

  • 100 on Windows 32-bit machines
  • 400 on Windows 64-bit machines)


How to determine the current number of active devices

Checkout for Push.Devices.Total statistics. To find out if you need to change this parameter, run the following command

> tell traveler stat show

...
 Push.Devices.Total = 225
 ...


How to determine the current number of active HTTP threads

The current number of active HTTP threads allocated by the Domino web server at startup can be found in the Server document on the Internet Protocols -> HTTP tab in the Number active threads field.

Guidelines

The following are general guidelines for the relationships between the number of threads in each of the thread pools.

  • Prime sync threads should be much less than the number of device sync threads; normally the prime sync default of 10 threads should be adequate.
  • Worker threads should be double the number of device sync threads.
  • HTTP threads should be 1.2 times either the number of device sync threads or the number of ActiveSync devices, whichever is larger.

Statistics

Statistics

The first set of statistics is the device synchronization GetThreadDelayTime histogram, where you can see if there is a long delay before a device synchronization thread is allocated. This is an example of a device synchronization thread histogram:

  • ThreadPool.GetThreadDelayTime.DS.00-02
  • ThreadPool.GetThreadDelayTime.DS.02-05
  • ThreadPool.GetThreadDelayTime.DS.05-10
  • ThreadPool.GetThreadDelayTime.DS.10-Inf

Interpretation

  • ThreadPool.GetThreadDelayTime.DS.00-02 = 571071
  • ThreadPool.GetThreadDelayTime.DS.02-05 = 45
  • ThreadPool.GetThreadDelayTime.DS.05-10 = 29
  • ThreadPool.GetThreadDelayTime.DS.10-Inf = 17

In this example the first line indicates that the majority of the device synchronization starts in the 0 to 2 second range. This implies that the current device thread count is sufficient for the load.

Reference


Statistics

The second set of statistics is the number of device synchronizations that have finished with various return codes (DeviceSync.Count.xxx). The return codes are:

  • 200 - Successful
  • 408 - Device did not respond before the server terminated the session
  • 409 - Device started a new session which caused this session to be terminated
  • 500 - Unknown Error
  • 503 - Server Busy

Interpretation

  • DeviceSync.Count.200 = 43427
  • DeviceSync.Count.408 = 199
  • DeviceSync.Count.409 = 44
  • DeviceSync.Count.500 = 5
  • DeviceSync.Count.503 = 4

DeviceSync.Count.503 shows the number of synchronizations that were not allowed to start and were ultimately aborted because a device synchronization thread could not be allocated to run the synchronization. This value should be much smaller than the DeviceSync.Count.200 value, which shows the number of synchronizations that have finished with a return code of 200 (Successful). If the DeviceSync.Count.503 value is too high, you should increase the number of device synchronization threads, which should reduce the occurrence of synchronizations that result in a server busy response.

The following is an example of the DeviceSync.Count stats. In this case, the ratio of 503 results (4) to 200 results (43427) is very small, which indicates there is no need for additional device synchronization threads.

Reference


Cache User Info - HTTP Maximum Cached Users - 64 bits only

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

  • Push.Devices.Total

Interpretation

  • Push.Devices.Total = 2455

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.


Deciding which server performs the lookup

By default, the lookup is performed against the user's mail server. This is done to reduce the configuration needed on the Traveler server and to provide more consistent results with a Notes client.

You can change this behavior to perform the lookup operation against the Traveler server. To do this, set the following parameter in the notes.ini file:

  • NTS_TRAVELER_AS_LOOKUP_SERVER=True

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


Ver também