Maximum number of concurrent GAL sync requests
Maximum number of concurrent GAL sync requests
Purpose
Since ZCS 7.x, we have added throttling on the number of GAL sync clients the server handles. It can also be applied per domain level. When the number of GAL sync clients exceeds the configured maximum on zimbraGalSyncMaxConcurrentClients, then the server returns "no change" and the client (ZCO) will again request the update on the next attempt (depending on the sync schedule). Example shown on /opt/zimbra/log/mailbox.log:
concurrency - limit reached, turning away <client@domain.com> (zmsoap), busy sync clients
The default value of zimbraGalSyncMaxConcurrentClients is 2. Sometimes this can be an issue if you have several ZCO clients trying to sync the GAL during the same period. This has been observed in some busy environments, as ZCO clients will be unable or will take a long time to sync the GAL. This can be caused by a combination of:
- A considerable number of ZCO clients trying to sync the GAL for the first time (new installations)
- Network issues (sync latency is high)
- A large GAL
Resolution
The value of zimbraGalSyncMaxConcurrentClients can be set to 0 (disable throttling) or it can be changed to a bigger value.
In ZCS 8.x or later please run:
zmprov mcf zimbraGalSyncMaxConcurrentClients 0
Or for example, change it a maximum of 10:
zmprov mcf zimbraGalSyncMaxConcurrentClients 10
There is no need to restart mailboxd.
This throttle mechanism was designed to prevent performance issues at the server level (memory exhaustion and/or increase of cpu load), so we must be careful about setting this value too high although starting with ZCS 8.x, this should be less of an issue, since we allow multiple galsync accounts per domain and per server.
Additional Content
- Bug 52816 - (SyncGalRequests flooding the heap)
- Bug 53822 - (Support for multiple GAL sync accounts)