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 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, you can do the following:
- Increase the EWS throttling policy limits in Exchange Online (Office 365)
- Create a custom throttling policy for an on-premises Exchange server
Normally, it is not possible to modify throttling policies on your own in Exchange Online. Originally, this was possible via the PowerShell remote connection, but throttling-related cmdlets have been removed from Exchange Online PowerShell some time ago. However, it is still possible to temporarily ease EWS throttling either by using the automated help pages in Microsoft 365 admin center or through Microsoft support (Office 365 business support details).
The option to change EWS throttling settings through the automated help pages has been introduced as a response to the COVID-19 crisis. It is possible that this option may become unavailable over time.
Perform the steps below to temporarily increase EWS throttling policy in Exchange Online by yourself:
- Sign in to your Microsoft 365 admin center.
- Click the ? (Help) icon in the upper-right corner of the page. If the switch at the upper part of the Help pane is pointing to Support Assistant, change it to Search.
- In the search field, enter ews and select Increase EWS Throttling Policy from the lists of query suggestions (Fig. 1.).
- You will be asked to diagnose throttling settings for your tenant. Click Run Tests to do so (Fig. 2.).
- If the Exchange Web Service are throttled, you will have the option to ease the throttling policy settings for 30, 60 or 90 days. Select the value that meets your needs from the Duration (Days) drop-down menu and click Update Settings (Fig. 3.).
The changes should take effect within 15 minutes.
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.