Office SharePoint Server 2007 的快取
本文內容:
輸出快取
物件快取
BLOB 的磁碟快取
Microsoft Office SharePoint Server 2007 隨附進階快取功能,可提高網站效能。本文說明可用的不同快取類型,以及如何針對特定部署需求最佳化快取。
下表顯示可用的快取類型及各類型的實作位置。
使用此快取類型... | 在… | 附註 |
---|---|---|
輸出快取與快取設定檔 |
個別頁面層級 |
最適合存取頻繁但不需要經常呈現新內容的網站。 |
物件快取 |
個別網頁組件控制項、欄位控制項及內容層級 |
包含跨清單查詢快取及導覽快取 |
二進位大型物件 (BLOB) 的磁碟快取 |
個別 BLOB 層級 |
支援 .gif, .jpg, .js, .css 及其他儲存為 BLOB 的圖像、聲音及程式碼檔案 |
輸出快取
Office SharePoint Server 2007 使用 ASP.NET 2.0 的原生輸出快取技術,管理提供頁面內容的時機與方式。若適當使用輸出快取,則可大幅改進輸送量及使用者的回應時間。
如果使用 ASP.NET 啟用網站,ASP.NET 輸出快取即會根據指定的快取設定檔,快取每個網頁在執行時間所產生的 HTML 標記。在存取頻繁的網站上,即使一分鐘一次快取經常存取的頁面,都可能增加相當大的輸送量。若是輸出快取快取一個頁面,擁有類似權限的使用者對該頁面上的後續要求會由輸出快取送出,而不必在指定的快取期間執行建立頁面上的程式碼或控制項。
注意
只有網站集合已啟用 Office SharePoint Server 的「發佈基礎結構」功能,或網站已啟用 Office SharePoint Server 的「發佈」功能,才可在網站集合或網站上使用輸出快取。您可以透過在網站集合的 [網站設定] 頁面上,按一下 [網站集合輸出快取],以及在網站的 [網站設定] 頁面上,按一下 [網站輸出快取],來啟用及設定網站集合與網站的輸出快取。如果網站集合尚未啟用 Office SharePoint Server 的「發佈基礎結構」功能,且網站尚未啟用 Office SharePoint Server 的「發佈」功能,則 [網站設定] 頁面不會出現 [網站集合輸出快取] 及 [網站輸出快取] 連結,因此您無法啟用或設定輸出快取。
如需啟用輸出快取的詳細資訊,請參閱輸出快取與快取設定檔 (英文) (https://go.microsoft.com/fwlink/?linkid=78928&clcid=0x404) 。
輸出快取考量
在您選擇使用輸出快取改進頁面效能及頁面項目的轉譯之前,請先考慮輸出快取實作的好處及限制。
好處包括:
輸出快取最適合不需要每分鐘更新內容的網站。在這種環境中,可向不同的使用者顯示快取的輸出,不必存取資料庫或再次執行初始建立網頁 HTML 標記的程式碼或控制項。
匿名及經過驗證的使用者都可使用輸出快取,但是匿名存取的效果最顯著。因此,只要適當且可行,即可對部分網站或整個網站啟用匿名使用者存取。
限制包括:
輸出快取使用額外的記憶體快取每個快取頁面上的 HTML 標記。請確定安裝足夠的實體記憶體,以免發生系統分頁或其他記憶體問題。
使用兩部或以上的網頁伺服器時,輸出快取可能會影響一致性。例如,您可以設定快取設定檔不為每項要求檢查更新,以及設定此設定檔略過輸出快取的網頁版本變更,直到原始頁面更新後 60 秒為止。如果拓撲中有兩部網頁伺服器,則根據路由傳送使用者要求所使用的負載平衡器,若頁面為其中一部伺服器所轉譯,接著後續要求又在 60 秒視窗內路由傳送至第二部伺服器,讀者可能會看到不一致的內容。如啟用快取設定檔的檢查變更,則會降低輸出快取的效能。
如果為擁有網站集合寫入權限的使用者啟用輸出快取,則要到輸出快取的頁面到期後,這些使用者才看得到該網站集合最新的網頁資料。一般而言,這不會直接影響使用者目前變更或檢視的網頁內容,但會影響清單或文件庫的彙總套件資料;例如,從文件庫網頁組件顯示的資料。因此,若要確定擁有寫入權限的使用者可檢視目前所有的資訊,您應僅為擁有唯讀權限的使用者啟用輸出快取。
輸出快取行為
您可以在下列層級指定輸出快取行為:
網站集合
網站
版面配置
指定伺服器陣列、網站集合或網站的管理員,可以套用不同的快取設定檔,以最佳化其擁有管理權限之層級的快取行為。例如,網站首頁最常被存取,您可為首頁使用唯一的版面配置,以便對此唯一的版面配置套用特殊的快取設定檔,並覆寫整個網站集合的快取行為。相反地,您可設定快取時間較長的版面配置快取設定檔。這可讓您最佳化首頁資料的適時性,以犧牲效能換取適時性。對於系統中的其他頁面,則可使用快取時間較短的不同快取設定檔。
搜尋結果快取
在採用使用者驗證的環境中,絕不可快取搜尋結果。這樣做會允許向未經驗證的使用者洩漏權限資訊。搜尋查詢會篩選其結果集,僅向目前的使用者顯示可用資訊。但當您快取搜尋結果時,卻不會使用篩選結果集的程式碼。因此,未經驗證的使用者即可能檢視他們應無權存取的結果。相反地,這在匿名環境中根本不是問題,因為所有的搜尋結果都是未經授權要求的結果。
如果在網站集合上啟用輸出快取,則可執行下列程序,停用搜尋結果版面配置。
停用搜尋結果版面配置
在網站集合最上層網站的 [網站動作] 功能表上,指向 [網站設定]****,然後按一下 [修改所有網站設定]。
在 [網站設定] 頁面上,按一下 [網站集合管理]**** 區段中的 [網站集合輸出快取]。
在 [網站集合輸出快取設定]**** 頁面中,核取 [版面配置可以使用不同的網頁輸出快取設定檔] 核取方塊,然後按一下 [確定]****。
在 [網站設定] 頁面上,按一下 [組件庫] 區段中的 [主版頁面與版面配置]****。
在 [主版頁面圖庫] 頁面上,指向 [SearchResults.aspx],按一下出現的箭頭,然後按一下出現之功能表上的 [編輯屬性]****,再按一下出現之對話方塊中的 [確定]。
在 [主版頁面圖庫:SearchResults] 頁面中,按一下 [驗證快取設定檔]**** 清單中的 [已停用],然後按一下 [確定]****。
在 [主版頁面圖庫] 頁面上,指向 [SearchResults.aspx],按一下出現的箭頭,然後按一下出現之功能表上的 [存回]****。
在 [存回] 頁面上,選取 [主要版本 (發佈)],然後按一下 [確定]****。即不再快取使用該特定版面配置的搜尋結果。
ASP.NET 私用位元組限制
如果啟用輸出快取,可能需要擴充預設的 ASP.NET 2.0 的私用位元組限制。此限制會指示 ASP.NET 何時應清除其輸出快取。提前清除會造成不必要的效能下降。如需詳細資訊,請參閱 caching 的 cache 項目 (ASP.NET 設定結構描述) (https://msdn.microsoft.com/zh-tw/library/ms228248.aspx)。
快取的頁面版本
根據使用者或其他商務邏輯,某些網頁可能會顯示略有差異的版本。您可使用支援的可程式化 API,因應不同的快取項目需求,以擴充輸出快取。如需詳細資訊,請參閱 How to:使用 VaryByCustom 事件處理常式擴充快取 (英文) (https://go.microsoft.com/fwlink/?linkid=78935&clcid=0x404) 。
輸出快取與內容查詢網頁組件 RSS 摘要
「內容查詢網頁組件」可讓您選擇是否提供其顯示結果的 RSS 摘要。此 RSS 摘要是由伺服器的 .aspx 頁面所產生,該頁面會以「內容查詢網頁組件」顯示的相同結果為基礎產生 RSS 摘要 XML。
因為 RSS 用戶端經常定期向伺服器要求 RSS 摘要 (例如每 30 分鐘),所以順利產生 RSS 摘要很重要。因此,RSS 摘要 .aspx 頁面會實作輸出快取。在 .aspx 檔的來源中,您會看到下行:
<%@ OutputCache Duration="300" VaryByParam="xsl;web;page;wp" VaryByCustom="rights;feedresults"%>
這表示系統預設每五分鐘 (300 秒) 快取一次「內容查詢 RSS 摘要」、為每個不同的「內容查詢網頁組件」快取 RSS 摘要的唯一版本,以及為擁有不同權限及不同摘要結果的使用者快取 RSS 摘要的唯一版本。
若要自訂此輸出快取,您可以建立自己的摘要 .aspx 頁面,實作相同的邏輯,卻有不同的輸出快取設定。「內容查詢網頁組件」之後會參照您自訂的摘要 .aspx 頁面,而不是參照預設頁面。
此外,如果搜尋中心網站其他機密頁面也有相同的潛在安全性問題,您還可停用整個網站,以停用輸出快取。若要停用搜尋中心網站的輸出快取,請執行下列程序:
停用搜尋中心網站的輸出快取
在網站集合最上層網站的 [網站動作] 功能表上,指向 [網站設定]****,然後按一下 [修改所有網站設定]。
在 [網站設定] 頁面上,按一下 [網站集合管理]**** 區段中的 [網站集合輸出快取]。
在 [網站集合輸出快取設定] 頁面上的 [網頁輸出快取原則]**** 區段中,核取 [發佈網站可以使用不同的網頁輸出快取設定檔] 核取方塊,然後按一下 [確定]****。
按一下上方導覽列上的 [搜尋] 索引標籤。
在搜尋中心首頁的 [網站動作]**** 功能表上,指向 [網站設定],然後按一下 [修改所有網站設定]****。
在搜尋中心網站的 [網站設定] 頁面上,按一下 [網站管理] 區段中的 [網站輸出快取]****。
在 [發佈網站輸出快取設定] 頁面中,選取 [驗證快取設定檔] 區段中的 [繼承設定檔 “Disabled”]**** 選項按鈕。
若要停用所有子網站經過驗證的輸出快取,您也可以選擇核取 [套用這些設定到所有子網站] 核取方塊。
物件快取
Office SharePoint Server 2007 支援快取特定頁面項目,例如導覽資料及透過跨清單查詢存取的資料。快取頁面項目會降低每次轉譯頁面時,從資料庫擷取欄位資料的需求。快取系統也會快取頁面上的完整欄位資料,但不含頁面任何網頁組件控制項的資料。
物件快取調整
每個網站集合的物件快取大小預設值為 100 MB,但您可修改每個網站集合的此項設定,以配合網站的特性。您可以使用一組效能計數器,調整物件快取的大小。效能計數器物件的名稱是「SharePoint 發佈快取物件」。您可以根據「快取點擊率」及「物件捨棄計數器」的變更,來設定物件快取的大小。設定此限制時請考量下列項目:
從低的值開始 (例如 200 MB) 並監視「快取點擊率」及「物件捨棄計數器」。點擊率大於 90% 且物件捨棄率很低,通常表示目前大小即足夠。但您也應測量主要作業的使用者回應時間,以調整此設定。
如果大小設得過大,可能會浪費可供其他快取使用的寶貴記憶體,例如使用 ASP.NET 輸出快取時。某些網頁組件 (例如「內容查詢網頁組件」) 會將其 XSLT 樣式表儲存在輸出快取中。如果物件快取大小設得過大,ASP.NET 可能會清除輸出快取記憶體以挪出空間。CPU 使用量可能會在清除後增加。這一點對執行 32 位元作業系統的系統而言尤其重要,因為每個工作者處理序都限制在 2 GB 的應用程式記憶體空間。如果物件快取大小限制設得過大,IIS 工作者處理序 (w3wp) 會耗盡記憶體。
跨清單查詢快取
物件快取也用以快取擷取為跨清單查詢之一部分的項目。這些查詢會彙總網站集合中各式清單及網站的項目。這些查詢最常用在「內容查詢網頁組件」。每次使用跨清單查詢都需要來回一趟資料庫伺服器。使用物件快取,可大幅降低提供跨清單查詢所需之來回行程次數,從而改進可顯示跨清單查詢結果之「內容查詢網頁組件」等功能的效能。
檢查更新
您可設定跨清單查詢快取檢查更新,並以下列兩種方式有條件地重新整理快取:
檢查網站集合是否有所變更。若無任何變更,即使用快取的結果。
等候一段時間,在這段時間內會使用快取的結果,之後即發出查詢以重新整理快取。
第一種設定的適用情況包含顯示跨清單查詢結果之網站集合的內容經常變更,或顯示最新的查詢資訊很重要時。顯示網站最新文件之跨清單查詢的部門內部網路入口網站,即為一例。在此網站中,許多使用者同時也是參與者,所以查看使用者已發佈的最新文件很重要。
第二種設定的適用情況包含網站集合的內容不常變更,或顯示最新資訊的跨清單查詢不太重要時。顯示網站已發佈最新文章頁面之跨清單查詢的公用網際網路網站,即為一例。在此網站中,大多數的使用者是匿名使用者,或擁有唯讀權限且經過驗證的使用者。在本例中,最新的文章延遲幾分鐘沒什麼大不了的。
您可以執行下列程序以設定跨清單查詢快取。
設定跨清單查詢快取
在網站首頁的 [網站動作]**** 功能表上,指向 [網站設定],然後按一下 [修改所有網站設定]****。
在 [網站設定] 頁面上,按一下 [網站集合管理] 區段中的 [網站集合物件快取]****。
在 [跨清單查詢快取變更] 區段中,根據您要如何更新跨清單查詢快取來選取適當的選項按鈕。如果選取 [跨清單查詢使用快取結果的時間 (秒)]**** 選項,請在表示重新整理之前快取所要等候秒數的文字方塊中輸入值。
按一下 [確定] 儲存變更。
擷取的項目數目
[跨清單查詢結果乘數] 設定會控制擷取及快取的項目數目。因為跨清單查詢可為擁有不同權限的各種使用者擷取項目,所以利用查詢擷取足夠的項目,讓所有使用者都能看到正確的項目很重要。為確保在調整安全性後,所有使用者都能看到查詢結果中的正確項目,跨清單查詢快取擷取的結果必須比原來所要求者更多。此設定需要整數,指定跨清單查詢快取應擷取的項目倍數。
設定較大值的乘數,會擷取較多的項目,也會耗用較多的記憶體。許多使用者擁有不同清單與項目之唯一權限的網站,適合較大的值。
設定較小值的乘數,會擷取較少的項目,也會耗用較少的記憶體。使用者設有相同安全性的網站 (例如網際網路網站的匿名使用者),適合較小的值。
設定跨清單查詢結果乘數
在網站首頁的 [網站動作]**** 功能表上,指向 [網站設定],然後按一下 [修改所有網站設定]****。
在 [網站設定] 頁面上,按一下 [網站集合管理] 區段中的 [網站集合物件快取]****。
在 [跨清單查詢結果乘數] 方塊中輸入數值,以指定跨清單查詢擷取的項目倍數。
按一下 [確定]**** 儲存變更。
BLOB 的磁碟快取
磁碟快取控制二進位大型物件 (BLOB) 的快取,例如圖像、聲音、視訊檔案及程式碼片段。磁碟快取會降低往來資料庫存取 BLOB 的需求。BLOB 從資料庫擷取一次後,即儲存在網頁伺服器。未來的要求會由磁碟快取送出,並根據安全性加以調整。
考量
您可以設定每個 Web 應用程式的磁碟快取大小。最小值為 1 GB,但您可以 GB 倍數增加大小。請確定應用程式有足夠的磁碟空間可用。
磁碟快取有多項設定可加以設定。請特別注意下列兩項設定:
MaxAge 指定用戶端瀏覽器快取下載至用戶端電腦之 BLOB 的最長秒數。如果下載的項目自前次下載後尚未到期,會在快取到期後才重新要求相同的項目。MaxAge 屬性預設為 86400 秒 (亦即 24 小時),但可設為零或較長的時段。此值愈大,瀏覽器取得更新項目所需的時間愈長。
Path 以規則運算式格式指定要根據副檔名快取的檔案。副檔名預設包括 gif、jpg、png、css 及 js。網頁如參照特殊的檔案類型,則必須將副檔名新增至快取。
磁碟快取僅適用於文件庫中的項目。如果您將資源儲存在文件庫外 (例如網站下的資料夾),即使為整個 Web 應用程式啟用磁碟快取,磁碟快取也無法管理項目。若要控制下載至用戶端瀏覽器之 BLOB 資源的 MaxAge 設定,這一點很重要。所有儲存在 Office SharePoint Server 中的項目 MaxAge 預設值為零。