How to solve High CPU usage when using the Synchronizer

Last update:
Created :
Written by Support InfoBridge


If you are running into problems where the Synchronizer uses a lot of CPU cycles (high CPU usage), follow this KB article.

How to

  • First of all stop the Synchronizer service
  • Open the Synchronizer admin and go to the Options panel

In the Options panel there are some extra options and timers to set.


Option 1: Do not update the Free Text Search table

Option 1 is the option to not update the SuperOffice Free Text Search table, as this might also be an CPU intensive task.

  • Please check the option "Do not update the SuperOffice Free Text Search table"

Option 2: Database mutation provider interval (seconds)

Change the "Database mutation provider interval"

  • By default it is set to 3 seconds
  • Change this to 30 seconds

It means that the synchronization will take place every 30 seconds. Experiment with this value, for each environment is different.

Option 3: Database mutation provider inter-user interval (miliseconds)

Change the setting "Database mutation provider inter-user interval"

  • Change it to 5000 miliseconds

This means that the synchronizer will be idle for 5000 ms (5 seconds) in between the synchronization of each user.

Now restart the synchronizer and monitor the behaviour and CPU load. If improvements have been noticed, adjust the values, restart the service and try again. 

Option 4: Exchange mutation provider interval (seconds)

Specify the interval in which exchange events are checked. The default value is 15 seconds. When the synchronizer is slow in retrieving new or changed events from Exchange you can change the value to 120 or 240 for instance

Option 5: Move database intensive tasks to the house-keeping process

Move of database intensive tasks, like the synchronization of contacts, to the house-keeping process.

  • Please tick the checkbox "Move database intensive tasks to the house-keeping process"

This House-keeping process runs each night at 02:00. This way intensive tasks like the synchronization of contacts will take place at a time of day when nobody is working in superOffice.

Note: with this option checked you will not have the event driven synchronization of contacts. Appointment synchronisation is not affected.

Option 6: Check and change the Database Recovery Model

Preferably, this should be set to Simple mode. We often see that Full Recovery mode is chosen, but regular logfile backups are not performed, contributing to high CPU load. Also see point 6.

Option 7: Truncating and shrinking large SQL Transaction logfiles

Having large SQL Transaction logfiles contribute to high CPU Usage. Perform regular logfile backups when Full Recovery is chosen. If possible, truncate and shrink the SQL Transaction logfile. More info

Option 8: Truncating the Traveltransactionlog table

If SuperOffice is used very actively, then the TravelTransactionLog table will also be populated with a large number of records. When having millions of records, it will also affect the CPU usage.

Perform this simple SQL query to find out how many records exist in that table.


Please note: when using SuperOffice Travel functionality, please contact SuperOffice Support before truncating as this functionality might be affected.

See this article on how to safely truncate the TravelTransactionLog table without loosing any synchronization history. The idea is to leave all data from today up to three months in the past.

 Option 9: Create the following index

CREATE INDEX [ix_TRAVELTRANSACTIONLOG_type_tablenumber_traveltransactionlog_id_includes] ON [your database name].[crm7].[TRAVELTRANSACTIONLOG] ([type], [tablenumber], [traveltransactionlog_id])  INCLUDE ([ttime], [prev_record_id], [associate_id], [record_id])