A unified data governance solution that helps manage, protect, and discover data across your organization
Hi @Nick Burke ,
ScannerMaxCPU / ScannerMinCPU aren't instant hard caps they are a 30-minute rolling-average throttle. The scanner watches average CPU over the last 30 min and adjusts thread count for new files. Short spikes above 50 are expected by design.
Quick checks to unblock this:
Confirm ScannerConcurrencyLevel isn't set (if present, it overrides Max/Min): (Get-LabelPolicy -Identity "Default").settings | ? { $_ -like "Concurrency" }
Verify the scanner pulled the latest policy: Start-ScannerDiagnostics -Verbose (use -OnBehalf if not running as the scanner service account)
Confirm the local policy file exists: %localappdata%\Microsoft\MSIP\mip\MSIP.Scanner.exe\mip\mip.policies.sqlite3
If, measured over the 30-min average, CPU still stays high and you need a hard cap, set ScannerConcurrencyLevel to about 2 threads per core it acts as a thread ceiling.
Also worth flagging: MSIP Scanner and the SQL DB are on the same box, so SQL is likely driving part of the CPU too. Best long-term move is to split them, or hard-cap threads via ScannerConcurrencyLevel.
Refs
Advanced settings: https://learn.microsoft.com/powershell/exchange/client-advanced-settings
Optimize scanner performance: https://learn.microsoft.com/purview/deploy-scanner-configure-install#optimize-scanner-performance