Per default l'impostazione del processo noderunner.exe di SharePoint 2013 è molto aggressiva:

PowerShell

PS C:\> get-SPEnterpriseSearchService

TypeName         : SharePoint Server Search
Id               : f67b9e43-3192-408e-abb3-fecf2c267fec
ServiceName      : OSearch15
ProcessIdentity  : AD\SPService
ContactEmail     : someone@example.com
Applications     : {}
PerformanceLevel : Maximum
Status           : Online
infatti il PerformanceLevel è impostato su Maximum.

Nel caso di un singolo server o di una macchina di sviluppo è possibile ridurre l'impatto del search impostando il PerformanceLevel su Reduced:

PowerShell

Set-SPEnterpriseSearchService -PerformanceLevel Reduced
si può verificare l'impostazione con

PowerShell

PS C:\> get-SPEnterpriseSearchService

TypeName         : SharePoint Server Search
Id               : f67b9e43-3192-408e-abb3-fecf2c267fec
ServiceName      : OSearch15
ProcessIdentity  : AD\SPService
ContactEmail     : someone@example.com
Applications     : {}
PerformanceLevel : Reduced
Status           : Online

Per ridurre ulteriormente il consumo di memoria è possibile cambiare il file di configurazione

Text

C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0\noderunner.exe.config
per limitare la memoria utilizzata dal processo. Bisogna cambiare la riga

XML

<nodeRunnerSettings memoryLimitMegabytes="0" />
dal valore 0, ovvero memoria illimitata , al valore che si vuole, ad esempio 250. Valori troppo bassi fanno andare in crash il processo con questo messaggio negli eventi

Application: NodeRunner.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.OutOfMemoryException
Stack:
at System.Runtime.Fx+IOCompletionThunk.UnhandledExceptionFrame(UInt32, UInt32, System.Threading.NativeOverlapped*)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)
E' consigliabile non modificare questa impostazione su una macchina di produzione.

Ovviamente queste impostazioni possono ridurre i tempi di indicizzazione (crawling) ma lasciano più risorse alla macchina.

Va poi riavviato il servizio SharePoint Search Host Controller per abilitare le modifiche:

PowerShell

Get-Service | ? {$_.displayname -eq "SharePoint Search Host Controller"} | Restart-Service
ci mette un po' a riavviarsi.

Su un sistema di sviluppo può tornare utile questo comando per fermare il processi noderunner.exe

PowerShell

Get-Service | ? {$_.displayname -eq "SharePoint Search Host Controller" } | Stop-Service
Get-Service | ? {$_.displayname -eq "SharePoint Search Host Controller" }
e questo per farlo ripartire

PowerShell

Get-Service | ? {$_.displayname -eq "SharePoint Search Host Controller" } | Start-Service
Get-Service | ? {$_.displayname -eq "SharePoint Search Host Controller" }
Tags:
PowerShell199 Search7 SharePoint497 SharePoint 2013136
Potrebbe interessarti anche: