How the Exchange throttling policy impacts CodeTwo software
This article discusses the concept of throttling and how the Exchange throttling policy affects the performance of CodeTwo software. In addition, it provides instructions on how to manage throttling policies in Exchange.
What is throttling?
In short, throttling imposes a limit on the number of concurrent requests that can be executed at the same time.
What is the impact of Exchange throttling policies on CodeTwo software?
Exchange throttling policies affect all CodeTwo products that connect to Exchange Web Services (EWS). In particular, throttling issues may be observed while using CodeTwo Backup or CodeTwo migration tools.
- CodeTwo Backup
EWS throttling policy is one of the factors that impact the speed of backup and restore jobs and the number of errors that may occur during the jobs’ cycles (learn more about the backup speed and how it can be affected in this article). This means that you can experience throttling issues when items are copied (backed up) from the server to the backup storage as well as when the program creates (restores) these items in Office 365 (Microsoft 365) or on the on-premises Exchange server.
- CodeTwo Exchange Migration and CodeTwo Office 365 Migration
Exchange throttling policies also affect the migration speed and cause, in certain cases, a temporary inability to download or upload your items. Therefore, you may experience throttling issues when connecting to the source server (via the EWS protocol) as well as to the target server (target connection always uses EWS). Very often errors related to insufficient impersonation rights are also caused by throttling.
Keep also in mind that running any other program that also uses EWS does have a significant impact on the performance of these CodeTwo products.
How to avoid data throttling in Exchange?
CodeTwo software comes with several mechanisms designed to break up the backed up or migrated data into smaller batches in order to avoid throttling issues. These mechanisms are also constantly being improved.
In addition, for an on-premises Exchange environment, you can also create a custom throttling policy with limits higher than the default ones (or even disable these limits completely) and assign it to the user account used in CodeTwo software to perform backup and/or migration tasks. However, this should be done with caution as you need to ensure that your Exchange servers will be able to deal with the increased number of concurrent requests. To create a custom throttling policy, follow the steps outlined below.
Exchange Online (Microsoft Office 365)
It is not possible to modify throttling policies on your own in Exchange Online. Originally, this was possible via the PowerShell remote connection. However, throttling-related cmdlets have been removed from Exchange Online PowerShell some time ago. If you need to modify your Office 365 throttling settings, contact Microsoft support (Office 365 business support details) to discuss this.
You can create a custom throttling policy in your on-premises Exchange environment, with limits higher than the default ones. If necessary, you can disable these limits completely as well. This policy can be then assigned to the user account used in CodeTwo software to perform backup and/or migration tasks. However, this should be done with caution as you need to ensure that your Exchange servers will be able to deal with the increased number of concurrent requests. To create a custom throttling policy, follow the steps outlined below.
- Open the Exchange Management Shell (EMS).
- If you want to set the limits higher but not disable them completely execute the following cmdlet to check your current throttling:
Get-ThrottlingPolicy | fl
- Create a new throttling policy:
New-ThrottlingPolicy <ThrottlingPolicyName>For example:
- Reconfigure the new policy settings in a way that does not limit your backup or migration tasks. Use $null or Unlimited values to disable the limits completely or use custom values:
- Exchange Server 2010:
Set-ThrottlingPolicy CodeTwoPolicy -RCAMaxConcurrency $null -EWSMaxConcurrency $null -EWSMaxSubscriptions $null -CPAMaxConcurrency $null
- Exchange Server 2013 and newer:
Set-ThrottlingPolicy CodeTwoPolicy -RCAMaxConcurrency Unlimited -EWSMaxConcurrency Unlimited -EWSMaxSubscriptions Unlimited -CPAMaxConcurrency Unlimited -EwsCutoffBalance Unlimited -EwsMaxBurst Unlimited -EwsRechargeRate Unlimited
The parameters used above are the most significant ones for all CodeTwo products. However, you can change more limits. Read more about changing throttling policies in Exchange 2010, 2013, 2016 and 2019 on Microsoft's website.
- Exchange Server 2010:
- Once a throttling policy is created, it needs to be assigned to specific accounts – otherwise the new throttling policy will not be used at all. Execute the following cmdlet to assign the newly created policy (e.g. CodeTwoPolicy) to the admin account used in CodeTwo software:
Set-Mailbox "<mailbox name>" -ThrottlingPolicy CodeTwoPolicywhere <mailbox name> is the name or alias of the mailbox account used by that administrator.
If appropriate, consider assigning the policy to all users in your organization by using the following cmdlet:
Set-ThrottlingPolicy "CodeTwoPolicy" -ThrottlingPolicyScope Organization
Changes in throttling policies are applied immediately.