管理編目負載 (SharePoint Server 2010)

 

適用版本: Search Server 2010, SharePoint Server 2010

上次修改主題的時間: 2016-11-30

**摘要:**將流量導向專用網頁伺服器並使用「資源管理員」限制 CPU 使用量,以降低編目程式對於 SharePoint 伺服器陣列的影響。

Microsoft SharePoint Server 2010 支援專用編目負載管理。編目是一項使用大量資源的程序,可能會讓 SharePoint 伺服器陣列超載。您可以排程編目在伺服器陣列使用量較低時進行,也可以設定系統編目如本文所述,來管理搜尋系統。編目負載管理可協助解決和避免因使用者與編目程式同時存取 SharePoint 伺服器陣列,而發生的效能問題。此狀況最常見於大型環境、具有大量使用者要求的環境,以及經常進行編目的環境。

依預設,SharePoint Server 2010 編目程式會透過 SharePoint 伺服器陣列中的網路負載平衡器,來編目該伺服器陣列中所有可用的 Web 前端電腦。因此,進行編目時,編目程式可能會增加網路流量、增加 Web 前端電腦硬碟及處理器資源的使用量,以及增加資料庫伺服器上的資源使用量。如果所有 Web 前端電腦同時增加此項額外負載,就可能會降低整個 SharePoint 伺服器陣列的效能。

只有在處理使用者要求的 SharePoint 伺服器陣列 (而非 SharePoint 搜尋伺服器陣列) 上,才會發生這種效能降低的狀況。效能降低可能會造成 Web 前端電腦及整體伺服器陣列的回應時間延遲。效能降低可能無法透過特定記錄、資源計數器或標準監視診斷出來。

您可以執行下列動作來降低編目對於 SharePoint 效能的影響:

  1. 將所有編目流量重新導向至小型環境中的單一 SharePoint Web 前端電腦,或大型環境中的一組特定電腦。這樣可防止編目程式使用針對目前使用者呈現和處理網頁及內容時所使用的資源。

  2. 在 Microsoft SQL Server 2008 R2、SQL Server 2008 Service Pack 1 (SP1) 與累計更新 2,及 SQL Server 2005 SP3 與累計更新 3 中限制搜尋資料庫使用量,防止編目程式在編目期間使用共用 SQL Server 2008 R2、SQL Server 2008 SP1 與累計更新 2,及 SQL Server 2005 SP3 與累計更新 3 磁碟及處理器資源。

在 Microsoft Office SharePoint Server 2007 中,您可以使用管理中心將編目程式流量重新導向至專用 Web 前端伺服器。不過,在 Microsoft SharePoint Server 2010 中,您必須使用 Windows PowerShell 來重新導向編目程式流量。

將編目程式流量重新導向至專用 Web 前端伺服器

此程序會將編目程式流量重新導向至專用 Web 前端伺服器。執行此程序之前,請確認已從網路負載平衡中移除伺服器。

重要

專用 Web 前端電腦必須連線,才能順利編目。如果專用 Web 前端伺服器離線,編目就無法自動重新導向至其他電腦,且會在 10 分鐘後失敗。為了避免這種情況,您可以將多個專用 Web 前端電腦設定成編目目標。

將專用 Web 前端伺服器設定成編目目標

  1. 確認符合下列基本需求:請參閱<Add-SPShellAdmin>。此外,也請確認執行此程序的使用者帳戶是伺服器陣列管理員群組的成員。

  2. 在 Windows PowerShell 命令提示字元處,執行下列範例中的指令碼:

    $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. 在 Windows PowerShell 命令提示字元處執行下列指令碼,確認已針對編目設定 Web 前端伺服器:

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

    如果這樣會傳回任何值,就表示 Web 應用程式使用專用 Web 前端伺服器。

  4. 將 Web 前端伺服器專用於搜尋編目,就可以移除節流設定;後者會限制伺服器可接受之要求及服務的負載。在 Windows PowerShell 命令提示字元處執行下列指令碼,即可移除伺服器的節流:

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

重設專用 Web 前端伺服器

  1. 如果您必須回復此變更才能編目所有 Web 前端伺服器,則可以在 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()
    

利用資源管理員限制搜尋資料庫使用量

「資源管理員」是 SQL Server 2008 引進的技術,您可利用它指定傳入要求的資源耗用量限制,以管理 SQL Server 工作負載及資源。「資源管理員」可區分不同的工作負載,然後在工作負載要求使用 CPU 及記憶體時,根據您指定的限制值配置用量。這項功能只有 SQL Server 2008 或 SQL Server 2008 R2 Enterprise Edition 才提供。如需使用「資源管理員」的詳細資訊,請參閱<使用資源管理員來管理 SQL Server 工作負載>(https://go.microsoft.com/fwlink/?linkid=129385&clcid=0x404)。

建議您使用「資源管理員」搭配 SharePoint Server 2010 來執行下列動作: