Very often you will see a SharePoint (backend) server with High CPU ?
In our case this is not different. Especially when the SharePoint Backend server also functions as a SharePoint Search Server.
We have 1 Virtual Server where the SP Search Services are installed on as well as the Microsoft Search Server 2010 Express.
Every time when the timer job start the Search crawling actions, it hit the roof. In most cases after a reboot of the server it goes to 100% !
To keep the noise down you can apply this trick.
Go and look for all the Search Processes running.
And set for each one the Process Priority to LOW
As well as the Affinty to 1 CPU Core.
This should keep it down untill a next reboot of course
Or you can apply a PowerShell Script for this
CLS $ret = Get-Process mss* | Select-Object ID, name, Description, ProcessorAffinity, PriorityClass echo $ret | Out-GridView
This give you a glimp of the current settings.
I will add the Set Affinity / Priority script later.
They can explain it better then I do.
Some extra tuning that can be done is to set the EnterpriseSearchService Performance level to REDUCED.
You need to use this PS command.
CLS Get-SPEnterpriseSearchService | select PerformanceLevel # If it shows PartlyReduce you can set it to "REDUCED" Set-SPEnterpriseSearchService -PerformanceLevel Reduced;