24 May 2020

Exchange 2016 - High CPU utilization by Microsoft Exchange Replication Service (MSExchangeMailboxReplication)

I had faced with that issue on my work and with Microsoft support we found the core issue and solved it.
Unfortunately, I haven't been able to reproduce this issue in my home lab, but I'll try to describe all main points.


Procmon was showing that "MSExchangeMailboxReplication.exe" process always (hundreds of times per second) try to open (RegOpenKey) "HKLM\SOFTWARE\Microsoft\ExchangeServer\v15\ActiveManager\TestOverride" reg key.
Adding the "TestOverride" registry key doesn't solve the problem. The process started to searching other keys.

The first thing that helped me to find a clue is MailboxReplicationService logs (C:\Program Files\Microsoft\Exchange Server\V15\Logging\MailboxReplicationService). There was big amount of logs and they were constantly added.
Each log file contained several types of events regarding the single mailbox. Therefore the core of the issue was in a task for the single mailbox that Exchange could not do.

No one cmdlet (MoveRequest, ExportRequest, etc) didn't show the task/request with that mailbox.
Moving mailbox to another mailbox database doesn't solve the problem.
Disabling the mailbox solves the problem, but it is not our solution.

In that moment we attracted Microsoft Support (Thanks to them!).

Following cmdlet shows detailed information about requests where you could find the MoveRequestQueue of needed mailbox.
Get-ExchangeDiagnosticInfo -Process Msexchangemailboxreplication -Component MailboxReplicationService -Argument "resources='*DB*',healthstats,queues,pickupresults" -server Exchange
After that you could run the cmdlet to remove the problematic request.
Remove-MoveRequest -MailboxGuid "..." -MoveRequestQueue "..."
Hope it helps someone.

2 comments:

  1. BEST SOLUTION

    ReplyDelete
  2. We had exactly the same problem and was stumped.

    You save me a lot of time. Appreciated

    ReplyDelete