以前個人一篇文章給你們粗略的講了一下關於 IIS應用池回收給 SharePoint 帶來的訪問速度的提高,緩存
詳見 http://horse87.blog.51cto.com/2633686/1895153服務器
前幾天和幾位MVP一塊兒又討論學習了一下關於IIS應用池的回收問題,今天來給你們再鋪開來說一講。app
簡單來講,我麼服務器IIS中的應用程序池,能夠看作是一個網站的資源邊界,當網站要與系統資源發生交互的時候,實際上會經過應用程序池,再由池子去請求系統資源,分配給網站,一個網站所能使用到的系統資源能夠經過池子來進行控制。ide
咱們你們能夠這樣理解,網站自己是靜態存在的,可是應用池是動態的。 池子裏面包括了:網站所佔用的進程,內存虛擬地址,會話狀態等,這些內容都是保存在池子裏面。經過應用池能夠對一個網站進行合理的資源管控。好比,當一個網站的CPU使用達到了某個峯值,內存使用達到了某個峯值,或者到了某個請求數,就把這個應用池進行回收。學習
咱們其實能夠稍微屢一下思路,當咱們訪問一個網站的時候,其實是去訪問了一個IIS的網站集,這個時候IIS會通知這個池子,「如今有人來 訪問你了」,而後池子會啓動一個W3WP的進程,由這個進程來負責處理用戶與網站的交互。在IIS ASP.NET應用程序裏面, 應用程序池會要求按期作回收,要作回收的目的,其實就是爲了防止一個池子過多的佔用系統資源。優化
有時候代碼沒有寫好,長時間不回收池子,是會致使網站進入假死狀態的。所以,IIS應用池回收是必定要作的。可是回收了,也意味着以前這個池子緩存的內容,以及內存中的狀態,都會被清理掉,應用程序池回收,至關因而給電腦來了一次重啓,或者說是重啓了IIS。網站
說到電腦重啓,你們都知道,重啓以後剛啓動起來,那個速度也是很慢的,過陣子等系統後臺進程都啓動起來了,就行了。IIS應用程序池回收也是這個道理。爲何有時候第一次訪問SharePoint會很慢,及時由於SP所在的IIS池子剛剛通過回收,W3WP進程尚未啓動起來,因此第一次訪問,會有一個啓動W3WP進程的過程,至關於要給SharePoint從新開機一次。blog
SharePoint這個應用程序比較大,有不少個池子,若是按照Technet上的建議,每個SP裏面的service application 都建立一個獨立的池子,那這個數量可想而知。因此有時候你們早上第一次訪問,會很是的慢,就是由於後臺正從休眠狀態中甦醒過來,初始化W3WP這個進程。進程
從IIS7開始,微軟就推出了集中優化的方案,用來解決應用池回收的問題。內存
首先,應用程序池回首以後爲何會訪問慢,是由於要初始化W3WP這個進程,讓它幹活,因此默認狀況下,一個池子回收以後,若是沒人訪問,W3WP是不會啓動的,除非有人訪問它,喚醒池子,纔會啓動W3WP,以後若是再有人訪問,那麼速度就要快一些了。
微軟爲了解決這個問題,推出了應用程序池和網站預加載功能。什麼叫預加載呢?簡單的來講,其實就是去感知應用程序池的回收,每當感知到這個池子進行了回收,那麼系統會自動啓動一個W3WP進程,這樣相對於之前來講,就已經有很大的提升了。
話很少說,直接上圖。
打開SharePoint IIS, 選擇應用池,選中其中你想配置的一個池,我這裏以80主站點爲例,右鍵,高級設置
第一步,選擇啓動模式,爲 alwaysrunning
第二步,設置IIS網站的預加載,選中主站點,選擇右側的高級設置
預加載選項,選爲 啓用 便可。