提升SharePoint性能的十個步驟
本文由美國計算機世界網站根據微軟提供的技術手冊改編,文中刪除了促銷信息,保留了微軟提供的有效解決方法。
SharePoint是微軟歷史上銷售量增長最快的產品,其可以存儲大量的文件。這意味著應用性能是成功部署SharePoint的一個關鍵因素。我們在這里列出了能夠提高SharePoint服務器性能的十個步驟。
步驟1:分離用戶和數據庫信息
一個常見的誤區是與高速網絡連接的服務器有著充足的帶寬執行所有需要的操作。但是SharePoint在SQL設置了大量的請求———每個需求一個頁面的請求會導致向數據庫發送大量的請求,更不要說服務、檢索和其它操作了。
為了緩解用戶與數據庫信息間的沖突,前端服務器和SQL連接應當被分離,讓它們分別通過獨立的物理網絡或虛擬LAN。這需要在每一個前端Web服務器上至少配置兩個獨立的網絡接口卡,通過設置靜態路由確保信息被路由至正確的接口卡。相同的設置或許也能夠被應用至應用索引服務器。
步驟2:分離檢索
一個典型的中型服務器群由一臺或多臺Web前端服務器、一臺專用索引或應用服務器和一臺獨立的SQL數據庫服務器。由索引服務器發起的搜索信息必須由負責傳遞用戶內容的相同服務器處理。為了防止搜索和用戶信息沖突,額外的服務器或許應當被添加至服務器群中,這臺服務器只用來服務搜索查詢(在更小的環境中,索引服務器或許應當具備這一功能)。服務器群管理員應當對搜索服務進行配置以僅在這臺專用戶服務器上執行收集功能。在搜索操作中,這一配置可能會減少Web前端服務器信息70%。
步驟 3:調整 SQL參數
一個避免麻煩的便捷方法是在獨立的物理磁盤(或是邏輯單元符號)上設置一個大型SharePoint數據庫。這意味著有一套搜索數據庫磁盤,一套臨時數據庫磁盤和內容數據庫磁盤。還需要對獨立的日志文件(*.ldf)進行額外考慮。盡管這些不會此發與其它文件相同級別的I/O,它們在備份和恢復中扮演了一個主要的角色,它們會讓主數據庫文件大小翻上數倍。
另一個方法是前攝性的管理單個數據庫的尺寸和增長。默認狀態下,SQL會讓數據庫文件以很小的規模遞增,大約以每次1MB或是以數據庫大小的固定百分比為限(通常是10%)。這些設置導致SQL在反復的造成數據庫浪費,在數據庫增大的同時妨礙了其它數據的寫入。一個備選方案是如果空間足夠大可以重新將數據庫設置為推薦的最大值(100GB),將自動增長設置為一個固定值(如10MB或20MB)
步驟4:整理數據庫索引碎片
SQL服務器維持對存儲在多個數據庫中數據的索引,以改善查詢效率和讀取操作。就像文件存儲在硬盤中一樣,這些索引也會碎片化。定期進行維護操作十分重要。由于這種維護屬于資源密集性操作,因此在定期執行這類操作時應當特別注意,許多時候,會影響到數據寫入或讀取。
步驟5:在多內容數據庫分散用戶數據
大多數SharePoint數據被存儲在列表中:任務、通知、文件庫、問題、圖片庫等等。大量的這種數據實際上被存儲在與站點集合相聯系的內容數據庫的單一表單上。這與在SharePoint層內有多少站點和子站點被創建沒有關系,每一個站點集合僅與一個內容數據庫相聯。這意味著一個帶有數千個子站點的站點集合存儲了大量的用戶數據。這些用戶數據來自于SQL單一表單上的每一個站點所存儲的每一份列表。
由于SQL必須在一個潛在的非常龐大的數據組中遞歸執行查詢,這會導致延時。減少工作負載的一個辦法是讓站點集合映射至內容數據庫。
步驟6:縮小頁面尺寸
對于通過LAN與入口相聯的SharePoint用戶來說,管理內容和尋找資源很容易,但是對于通過低速WAN的遠程用戶來說,帶有大量元素的SharePoint頁面是一個性能殺手。
如果你有許多遠程用戶,你需要啟動一個小型母版頁,就像字面意思一樣,去除不需要的元素,允許設計者啟動一個只包含有基本功能的干凈的頁面。
其次,大多數SharePoint頁面都包含了支持文件鏈接,包括JavaScript、樣式表,這些都需要額外的時間進行檢索和執行。
步驟7:配置IIS壓縮
SharePoint內容由兩個主要來源組成———在SharePoint根目錄下存儲的靜態文件(C:\ProgramFiles\CommonFiles\MicrosoftShared 2007版為\12和2010版為\14)和存儲在內容中的動態數據。在運行時,SharePoint從這兩個來源中合并頁面,然后將它們傳輸至內一個HTTP上以響應請求者。互聯網信息服務器(IIS)版本6和7都包含了多種機制,可在將頁面傳輸至網絡上之前減少HTTP響應的有效負載。調整這些設置能夠減少傳輸給客戶的數據大小,縮短載入時間,加快網頁渲染。
IIS壓縮設置可能通過將基礎值0(不壓縮)修改為最大值10(充分壓縮)。這一設置的調整決定著IIS執行壓縮算法的程度。
步驟8:利用緩存
用戶請求的多數內容都能夠被緩存在內存上,包括表單項目、文件、查詢結果等等。站點管理員能夠配置他們自己的緩存文件以滿足不同的用戶需求。比如,匿名用戶能夠被指定一套緩存策略,授權用戶能夠被指定另一套策略,與普通讀者相比,內容編輯可以瀏覽最新的內容變化。通過頁面類型也可以配置緩存文件,所以公布頁面和布局頁面表現是不同的,管理員有權選擇詳細設定服務器和客戶端上的緩存策略
步驟9:管理頁面定制
SharePointDesigner是一個對管理員和高級用戶極為有用的工具,但是頁面定制將妨礙總體性能。當進行定制時,整個頁面內容,包括標記和內聯代碼都會被存儲在數據庫內容,每當頁面被請求時都必須被取回。雖然對逐頁母板頁影響不大,但是在有著數百甚至數千頁面時,這種對數據庫反復讀取將嚴重影響到性能。
為了防止這一問題,管理員應當執行一個限制頁面定制,只有當絕對需要時才可以進行定制的規定。
步驟10:限制導航深度
所有門戶網站的一個最重要設計元素是在每個網頁的頂部都設置了全局下拉彈出式菜單。這看起來是一個導航的便捷方法,但是這個設計過深,在最初的幾級菜單徹底失去之前導航功能已經變得極為混亂了。更為糟糕的是,讀取所有的數據以填充導航菜單在分級很深的網站上極為占用資源。
SharePoint設計者可以通過修改母版頁內容的導航控制參數來定制每個導航菜單的深度和級別。管理員應當將導航深度限制在一個可控級別之內,以防止影響性能。