Gestire il carico di ricerca per indicizzazione (SharePoint Server 2010)

 

Si applica a: Search Server 2010, SharePoint Server 2010

Ultima modifica dell'argomento: 2016-11-30

Riepilogo: Ridurre l'impatto del crawler su una farm di SharePoint indirizzando il traffico a un server Web dedicato e utilizzando Resource Governor per limitare l'utilizzo della CPU.

Microsoft SharePoint Server 2010 supporta la gestione dedicata del carico della ricerca per indicizzazione, un processo a elevato utilizzo di risorse che può creare sovraccarichi in una farm di SharePoint. È possibile gestire il sistema di ricerca pianificando le ricerche per indicizzazione in orari di minore utilizzo della farm e configurando il sistema per eseguire la ricerca per indicizzazione come descritto in questo articolo. La gestione del carico della ricerca per indicizzazione può evitare e risolvere i problemi relativi alle prestazioni che si riscontrano quando l'accesso a una farm di SharePoint viene effettuato contemporaneamente dagli utenti e dal crawler. Ciò accade soprattutto negli ambienti di grandi dimensioni, con grandi volumi di richieste utente e frequenti ricerche per indicizzazione.

Per impostazione predefinita, tramite il crawler SharePoint Server 2010 viene effettuata la ricerca per indicizzazione in tutti i computer Web front-end disponibili in una farm di SharePoint attraverso il bilanciamento del carico di rete della farm. Durante una ricerca per indicizzazione, pertanto, il crawler può causare un aumento del traffico di rete, un incremento dell'utilizzo delle risorse di disco rigido e processore nei computer Web front-end, nonché un aumento dell'utilizzo delle risorse nei server di database. L'aggiunta di questo carico in tutti i computer Web front-end contemporaneamente può avere effetti negativi sulle prestazioni nella farm di SharePoint.

Questo calo delle prestazioni ha luogo solo nella farm di SharePoint che gestisce le richieste utente, non nella farm di ricerca di SharePoint, e può causare tempi di risposta ritardati nei computer Web front-end e nell'intera farm. Il degrado delle prestazioni potrebbe non essere diagnosticato da log specifici, contatori delle risorse o un monitoraggio standard.

È possibile ridurre gli effetti della ricerca per indicizzazione sulle prestazioni di SharePoint effettuando le operazioni seguenti:

  1. Reindirizzare tutto il traffico a un solo computer Web front-end di SharePoint in un ambiente piccolo o a un gruppo specifico di computer in un ambiente di grandi dimensioni. In questo modo si impedisce al crawler di utilizzare le stesse risorse utilizzate per il rendering e la gestione delle pagine e dei contenuti Web per gli utenti attivi.

  2. Limitare l'utilizzo del database di ricerca in Microsoft SQL Server 2008 R2, SQL Server 2008 con Service Pack 1 (SP1) e aggiornamento cumulativo 2 e SQL Server 2005 con SP3 e aggiornamento cumulativo 3 per evitare che il crawler utilizzi le risorse condivise di disco e processore di SQL Server 2008 R2, SQL Server 2008 con SP1 e aggiornamento cumulativo 2 e SQL Server 2005 con SP3 e aggiornamento cumulativo 3 durante una ricerca per indicizzazione.

In Microsoft Office SharePoint Server 2007 è possibile utilizzare Amministrazione centrale per reindirizzare il traffico del crawler a un server Web front-end dedicato. In Microsoft SharePoint Server 2010, tuttavia, è necessario utilizzare Windows PowerShell per reindirizzare il traffico del crawler.

Reindirizzare il traffico diretto del crawler a un server Web front-end dedicato

Con questa procedura il traffico del crawler viene reindirizzato a un server Web front-end dedicato. Prima di procedere, assicurarsi che il server venga rimosso dal bilanciamento del carico di rete.

Importante

Il computer Web front-end dedicato deve essere online per la riuscita delle ricerche per indicizzazione. Se il server Web front-end dedicato è offline, la ricerca per indicizzazione non viene automaticamente reindirizzata a un altro computer e avrà esito negativo entro 10 minuti. Per evitare questo problema, è possibile configurare più computer Web front-end dedicati come destinazioni delle ricerche per indicizzazione.

Per configurare un server Web front-end come destinazione della ricerca per indicizzazione

  1. Verificare che siano soddisfatti i requisiti minimi seguenti: vedere Add-SPShellAdmin. Verificare inoltre che l'account utente utilizzato per eseguire questa procedura sia membro del gruppo Amministratori farm.

  2. Al prompt dei comandi di Windows PowerShell eseguire lo script riportato nell'esempio seguente:

    $listOfUri = new-object System.Collections.Generic.List[System.Uri](1) 
    $zoneUrl = [Microsoft.SharePoint.Administration.SPUrlZone]'Default'
    $webAppUrl = "<Default Zone FQDN URL>"
    $webApp = Get-SPWebApplication -Identity $webAppUrl 
    $webApp.SiteDataServers.Remove($zoneUrl)   ## By default this has no items to remove
    $URLOfDedicatedMachine = New-Object System.Uri("<Dedicated crawl target URL>")
    $listOfUri.Add($URLOfDedicatedMachine); 
    $webApp.SiteDataServers.Add($zoneUrl, $listOfUri); 
    $WebApp.Update()
    
  3. Verificare che il server Web front-end sia configurato per la ricerca per indicizzazione eseguendo lo script riportato di seguito al prompt dei comandi di Windows PowerShell:

    $WebApplication=Get-SPWebApplication <Web application URL>
    $WebApplication | fl SiteDataServers
    

    Se vengono restituiti valori, per l'applicazione Web viene utilizzato un server Web front-end dedicato.

  4. Quando un server Web front-end è dedicato alle ricerche per indicizzazione, è possibile rimuovere la configurazione di limitazione della larghezza di banda che diversamente limiterebbe il carico accettato dal server da richieste e servizi. È possibile rimuovere questa limitazione da un server eseguendo lo script riportato di seguito al prompt dei comandi di Windows PowerShell:

    $svc=[Microsoft.SharePoint.Administration.SPWebServiceInstance]::LocalContent;
    $svc.DisableLocalHttpThrottling=$true;
    $svc.Update();
    

Per reimpostare un server Web front-end dedicato

  1. Per ripristinare lo stato precedente a questa modifica affinché la ricerca per indicizzazione venga eseguita in tutti i server Web front-end, è possibile eseguire lo script riportato di seguito al prompt dei comandi di Windows PowerShell:

    $zoneUrl = [Microsoft.SharePoint.Administration.SPUrlZone]'Default'
    $webAppUrl = "<Your Default Zone FQDN URL>"
    $webApp = Get-SPWebApplication -Identity $webAppUrl
    $webApp.SiteDataServers.Remove($zoneUrl);
    $WebApp.Update()
    

Limitare l'utilizzo dei database di ricerca con Resource Governor

Resource Governor è una tecnologia introdotta in SQL Server 2008 che consente di gestire carichi di lavoro e risorse di SQL Server specificando limiti per l'utilizzo delle risorse da parte di richieste in ingresso. Resource Governor consente di differenziare i carichi di lavoro e di allocare CPU e memoria in base alle richieste, secondo i limiti specificati. È disponibile solo in SQL Server 2008 o SQL Server 2008 R2 Enterprise Edition. Per ulteriori informazioni sull'utilizzo di Resource Governor, vedere Gestione di carichi di lavoro di SQL Server con Resource Governor (https://go.microsoft.com/fwlink/?linkid=129385&clcid=0x410).

È consigliabile utilizzare Resource Governor con SharePoint Server 2010 per: