共用方式為


SharePoint 2010:改進與 RBS SharePoint 2010 效能

將 BLOB 儲存在資料庫之外的位置,可以提高 SharePoint 2010 的效能。

Iqbal Khan

SharePoint 變得非常受歡迎的入口平台。 它提供許多不同的公司群組之間,或甚至之間不同的公司共同作業的應用程式。 處理序管理]、 [文件管理] 和 [其他主要的應用程式是功能的 SharePoint ’s 陣列的所有部份。

但是,SharePoint ’s 人氣指數有其缺點也。 當更多人使用它,可以有主要的效能與擴充性的瓶頸因為 SharePoint 的 SQL Server 資料庫的大量使用的所有項目。 這可能包括結構化的資料] 或 [來自 Microsoft Word、 Excel,PowerPoint 及 Adobe Acrobat 的文件。 這些文件來自資料庫。

效能問題

有兩個 SharePoint 2010 相關聯的潛在問題。 其中一個:因為所有二進位大型物件 (BLOB) 資料的資料庫可以成長更大。 兩個:讀取和寫入 BLOB,以及其他關聯的資料可以降低 SQL Server 效能因為 ’s 不儲存 BLOB 的理想的位置。

關聯式資料庫被設計來處理結構化的關聯式資料。 被針對它們的架構。  Microsoft 已經加入支援 BLOB,但不是 ’s 理想的情況。 手動,檔案儲存體是設計用來儲存基本上是資料流的資料或 BLOB 的檔案。

SharePoint 2010 是大量文件為主的 Word、 Excel、 PDF 及 PowerPoint 檔案。 大型文件的龐大數目會快速地使資料庫比實際更大。 如此一來 SharePoint 效能可能需要一個叫用的。 圖 1 顯示與 SQL Server 資料庫和 BLOB 相關的效能問題。

圖 1 Bloated SQL Server 資料庫會減慢 SharePoint 2010

這可以成為 SharePoint 來新增更多的使用者與文件更 aggravated。 如果您上萬文件儲存在資料庫中的資料庫成為多載,並有許多需要來回到 SharePoint Web 伺服陣列與 SQL 資料庫之間的文件。

隨著異常大型資料庫大小,則這明顯地提供給資料庫 sluggishness。  如果這個 SharePoint 資料結構化的關聯式資料,它可能聰明,並適當地處理 SQL Server 進行索引。

BLOB 資料的總大小可以快速地展開和成長超過文件中繼資料和其他結構的資料儲存在資料庫中的總大小。 若要移出的 SQL Server 資料庫,並進入分開的存放的 BLOB 資料很有幫助。 ’s 因為 BLOB 資料會消耗大量的檔案空間,並使用最佳化的伺服器資源,如資料庫存取模式。

移動超出資料庫 BLOB

在 Microsoft Office SharePoint 伺服器 (MOSS) 2007年,Microsoft 所提供的機制,稱為外部的 BLOB 存放或 EBS。 EBS 外掛程式架構幫助協力廠商安裝攔截 SharePoint 資料庫流量,並將所有 BLOB 流量重新都導向至不同的 BLOB 儲存一個 EBS 模組。 EBS 運作正常以及相當有效率地處理這個問題。

EBS 可讓您將 BLOB 移轉的資料庫、 將它們放在檔案系統儲存,存放區域網路 (SAN) 或網路附加儲存體 (NAS)。 這些存放系統是適用於儲存 BLOB,因為這些是所有文件 — Excel,Word,PDF,這些類型的項目 — 典型的組織會建立,並於其使用者之間共用。

但是,您 can’t 直接使用 EBS,因為沒有 EBS 提供者隨同 MOSS 2007。 其他的缺點 EBS 不是百分之百架構.NET,但仍根據舊的 COM 介面。 在這種情況下您必須依賴協力廠商提供者的 EBS。 沒有為第三方廠商] 模組協助 IT can’t 使用 EBS。 也請注意的問題,像是 BLOB 清除對協力廠商模組。 在刪除 BLOB SharePoint 永遠不會詢問要刪除 [BLOB 模組。 它只是停止參考它。

EBS 模組廠商寫入必須 BLOB 廢棄項目收集或定期搜尋 SharePoint 不再參考這些 BLOB 的 BLOB 清除功能。 它會再刪除它們因為使用者刪除這些文件。

同樣地,使用者會更新文件,如果 SharePoint 不曾真正地更新現有的 BLOB。 這樣仍然大約是較舊的 BLOB,它一定會建立新的 BLOB。 記憶體回收的集合功能 EBS 模組必須移除這些 BLOB。 EBS 確實的作業正確,因為它能實際提高 SharePoint 效能相當有點移出資料庫的 BLOB。

輸入 SQL Server 2008,RBS

Microsoft SQL Server 2008 中,都有內建的 BLOB 遠端存放裝置 (RBS) 功能。 RBS 可讓 SQL Server 使用者儲存資料庫以外的所有 BLOB。 Microsoft 提供一般的檔案系統內建的 FILESTREAM 提供者。 它也有發行介面和開發的這個特殊的儲存區提供者的第三方儲存公司的規格。 例如 Hitachi]、 [EMC] 或 [偶數的定域機組儲存像 Windows Azure 或亞馬遜定域機組儲存,公司現在可以實作,或提供的 RBS 實作自己的儲存系統。

所有這些功能都可用於 SQL Server 2008 的使用者。 讓您可以設定 SharePoint 2010 作為其內容資料庫的 SQL Server 2008,SharePoint 也到這點選。 若要使用 RBS 功能在 SharePoint 2010,您必須使用 SQL Server 2008,即使 SharePoint 2010 運作與 SQL Server 2005,SQL Server 2005 並沒有 RBS 功能。

SharePoint ’s 觀點 RBS 會執行完全相同的動作為 EBS。 它 ’s 來儲存資料庫以外的 BLOB 的機制。 唯一的差別在於,與 EBS,必須提供 EBS 模組的協力廠商。 使用 RBS,Microsoft 已經有 FILESTREAM 提供者。

您尋找在 SharePoint 中使用 RBS 最方便的方法是透過協力廠商產品。 這樣使用相當簡單的、 完整的、 使整個程序,並透過 GUI 工具管理與所有項目。 如第三方廠商軟體 don’t,您可以設定 RBS BLOB 儲存在 SQL Server 2008,SharePoint 2010 內。

在 SQL Server 2008 中的 RBS 有內建的廢棄項目收集的程序,呼叫它已有不用於 EBS 的 RBS Maintainer。 RBS Maintainer 不同的處理序,它會清除所有未參考 BLOB,這 EBS,與協力廠商必須實作它自己。

但是,使用者 ’s 觀點 RBS 和 EBS 提供與協力廠商實作相同的值。 如果使用者 doesn’t 要使用協力廠商,RBS 是唯一的選擇。 如果使用者 doesn’t 介意花超出的資料庫 BLOB 然後的協力廠商解決方案可能是 RBS 或 EBS。

EBS 和 RBS 同樣改善 SharePoint 效能。 不同的是 EBS 依賴傳統的 COM 介面而 RBS 是完全以.NET 為基礎的解決方案。 以技術觀點 RBS 適合於.NET 相當得很好。 EBS 仍然取決於傳統的介面。

您可以設定 SharePoint 2010,使用的內建在 SQL Server 2008 FILESTREAM RBS 提供者。 目前,’s 只有 SQL Server 2008 所隨附的提供者。 在未來請參閱其他協力廠商的 RBS 提供者。 與這些項目,您可以進入 [BLOB 這外部儲存 (請參閱 的 圖 2)。

圖 2 BLOB 移出的 SQL Server 2008 的 RBS

移動資料庫以外的 BLOB 是改善 SharePoint 效能,並讓資料庫更容易管理的索引鍵的項目。 但是,您必須要注意有其他事項如果你們進一步改善 SharePoint 效能。

BLOB 和快取的清單也會改善效能

一旦您 externalize 將 BLOB,快取 BLOB 資料可以進一步和大幅提升 SharePoint 應用程式的效能。 當您使用 Web 前端 (WFE) 伺服器的記憶體中常用的 BLOB 的分散式快取時,這是特別,則為 True。 這樣可以降低往返至 BLOB 的儲存體。 這個的方法您可以快速,閱讀這些 BLOB,並加速 SharePoint 應用程式的回應時間。

您也可以使用其他類型的資料快取。 就例如 SharePoint 會大量使用您可以快取的清單資料。 快取資料的清單是記憶體中快取所提供的另一個優點。 幾乎在 SharePoint 2010 所有項目是顯示整個清單。 SharePoint 必須進行資料庫往返的設定,每次讀取清單。 藉由快取那些清單 WFE 伺服器記憶體中的,您可以避免無數的資料庫往返,並改善效能。 快取 BLOB 和清單資料,可以大幅提升效能層級 (請參閱 的 圖 3)。

記憶體中快取正獲得相當 traction.NET 和 Java 的空格中。 您的快取應該 WFE 伺服器上執行。 取決於您是否具有 32 位元或 64 位元伺服器,可以配置為 500 MB 最少 5 GB] 或 [10 GB 的記憶體多少記憶體視您有可用。

此快取讀取 [WFE,BLOB 的儲存體或 SQL Server 的所有資料,而且 ’s 完全透明。 自動保留在快取中擷取任何項目。 下一次 SharePoint 需要相同的資料,是否它 ’s 將 BLOB 或清單,它會發現分散式快取中。 這表示快取實際跨越多個 WFE 伺服器。

對於大型的安裝中,您也可以到專用的快取層,以移轉快取。 正在分散式快取,可以幫助它多部伺服器間保持同步。 所以如果文件從一部 Web 伺服器更新,其他也會知道其相關資訊。 快取可以幫助帶到下一層級的效能,因為記憶體中快取是極快速。

圖 3 資料快取進一步改善 SharePoint 效能

如果您的 SharePoint 設定為使用單一背景工作處理序在每個 WFE,您可以讓背景工作處理序中的快取。 但是,您必須考慮背景工作處理序的記憶體大小限制,32 位元平台上 — 單一背景工作處理序 can’t 有超過 1 GB。 如果,’s 大小寫時,您可以保留在不同的處理序中的快取。

externalized BLOB,並實作快取後,您改善效能多次,因為您不會再使這些昂貴的網路往返。 您不移至 BLOB 儲存體和您不會到 SQL Server 的清單資料。 一切都有權限已 WFE 伺服器記憶體。

在程序快取的效能基準測試顯示效能是至少三到四倍速度更快,因為資料是在您自己的處理程序記憶體中。 即使它 ’s 出程序,相同方塊中的處理序間通訊將會比時依序透過網路快得多。

雖然您確實可以實作您自己快取,讓您執行一些程式設計的開發人員,’s 最佳使用協力廠商的分散式快取,以避免費時而且容易出錯的安裝。

利用與 SQL Server 2008 RBS BLOB externalization 並改善您的 SharePoint 2010 效能。 如果要移至 SQL Server 2008,尚未準備就緒,但仍要 externalize BLOB 您可以自行執行或移出資料庫的 BLOB,透過 EBS 使用協力廠商的選項。

Iqbal Kahn

Iqbal Khan 是總統] 和 [技術] evangelist Alachisoft (alachisoft.com)。 Alachisoft 提供 NCachePoint & NCache。 NCachePoint 是業界 ’s 前置的 SharePoint 效能和延展性的產品和 NCache 是受歡迎的.NET 分散式快取。 您可以在 iqbal@alachisoft.com 到達他。

 

相關內容