天天看點

提高 SharePoint 頁面通路速度之應用池預加載

之前我的一篇文章給大家粗略的講了一下關于 IIS應用池回收給 SharePoint 帶來的通路速度的提升,

前幾天和幾位MVP一起又讨論學習了一下關于IIS應用池的回收問題,今天來給大家再鋪開來講一講。

簡單來說,我麼伺服器IIS中的應用程式池,可以看做是一個網站的資源邊界,當網站要與系統資源發生互動的時候,實際上會通過應用程式池,再由池子去請求系統資源,配置設定給網站,一個網站所能使用到的系統資源可以通過池子來進行控制。

我們大家可以這樣了解,網站本身是靜态存在的,但是應用池是動态的。 池子裡面包括了:網站所占用的程序,記憶體虛拟位址,會話狀态等,這些内容都是儲存在池子裡面。通過應用池可以對一個網站進行合理的資源管控。比如,當一個網站的CPU使用達到了某個峰值,記憶體使用達到了某個峰值,或者到了某個請求數,就把這個應用池進行回收。

我們其實可以稍微屢一下思路,當我們通路一個網站的時候,實際上是去通路了一個IIS的網站集,這個時候IIS會通知這個池子,“現在有人來 通路你了”,然後池子會啟動一個W3WP的程序,由這個程序來負責處理使用者與網站的互動。在IIS ASP.NET應用程式裡面, 應用程式池會要求定期做回收,要做回收的目的,其實就是為了防止一個池子過多的占用系統資源。

有時候代碼沒有寫好,長時間不回收池子,是會導緻網站進入假死狀态的。是以,IIS應用池回收是一定要做的。但是回收了,也意味着之前這個池子緩存的内容,以及記憶體中的狀态,都會被清理掉,應用程式池回收,相當于是給電腦來了一次重新開機,或者說是重新開機了IIS。

說到電腦重新開機,大家都知道,重新開機之後剛啟動起來,那個速度也是很慢的,過陣子等系統背景程序都啟動起來了,就好了。IIS應用程式池回收也是這個道理。為什麼有時候第一次通路SharePoint會很慢,及時因為SP所在的IIS池子剛剛經過回收,W3WP程序還沒有啟動起來,是以第一次通路,會有一個啟動W3WP程序的過程,相當于要給SharePoint重新開機一次。

SharePoint這個應用程式比較大,有很多個池子,如果按照Technet上的建議,每一個SP裡面的service application 都建立一個獨立的池子,那這個數量可想而知。是以有時候大家早上第一次通路,會非常的慢,就是因為背景正從休眠狀态中蘇醒過來,初始化W3WP這個程序。

從IIS7開始,微軟就推出了集中優化的方案,用來解決應用池回收的問題。

首先,應用程式池回首之後為什麼會通路慢,是因為要初始化W3WP這個程序,讓它幹活,是以預設情況下,一個池子回收之後,如果沒人通路,W3WP是不會啟動的,除非有人通路它,喚醒池子,才會啟動W3WP,之後如果再有人通路,那麼速度就要快一些了。

微軟為了解決這個問題,推出了應用程式池和網站預加載功能。什麼叫預加載呢?簡單的來說,其實就是去感覺應用程式池的回收,每當感覺到這個池子進行了回收,那麼系統會自動啟動一個W3WP程序,這樣相對于以前來說,就已經有很大的提高了。

話不多說,直接上圖。

打開SharePoint IIS, 選擇應用池,選中其中你想配置的一個池,我這裡以80主站點為例,右鍵,進階設定

<a href="http://s3.51cto.com/wyfs02/M00/8E/FF/wKiom1jQ7IyhHAVNAAJ1hp600oM701.png" target="_blank"></a>

第一步,選擇啟動模式,為 alwaysrunning

<a href="http://s3.51cto.com/wyfs02/M00/8E/FC/wKioL1jQ7I6Qy7MzAABGo5cSyok527.png" target="_blank"></a>

第二步,設定IIS網站的預加載,選中主站點,選擇右側的進階設定

<a href="http://s3.51cto.com/wyfs02/M01/8E/FC/wKioL1jQ7I-jY-E4AAJJfYJ7aL0527.png" target="_blank"></a>

預加載選項,選為 啟用 即可。

<a href="http://s3.51cto.com/wyfs02/M02/8E/FF/wKiom1jQ7JHhkysEAAGxGISEKAU770.png" target="_blank"></a>

     本文轉自horse87 51CTO部落格,原文連結:http://blog.51cto.com/horse87/1908909,如需轉載請自行聯系原作者

繼續閱讀