如何限制虛擬主機可以使用的CPU資源

使用IIS 6.0運營虛擬主機的朋友們都會碰到這樣一個問題,當某個網站佔用大量CPU資源時,會把整個服務器都拖慢了,影響服務器上其餘網站的訪問速度,客戶們的投訴也讓系統管理員倍感頭疼。咱們知道,從IIS 6.0開始,微軟引入了應用程序池的概念,也就是把多個網站分組放置到不一樣的「池子」中。做爲系統管理員,能夠自由調整每一個程序池中的網站,也能夠隨意把某個站點在各個進程池之間進行遷移。服務器

傳統解決方案網站

當某個站點消耗大量CPU時,其所在的應用程序池w3wp.exe的CPU值會隨之飆升。在傳統的IIS 6.0的環境下,咱們只能先根據任務管理器中的PID值判斷出是哪一個應用程序池形成的,結束對應的w3wp進程,再中止該應用程序池。而後使用二分法,把該程序池中的網站分一半到其餘程序池,再觀察,等問題網站發做後再反覆執行上述的操做。這個過程耗時耗力,要揪出目標網站可能須要幾天甚至一週左右。那麼新版的IIS 8.0是否能更完美的解決這個問題呢?日誌

實際上,微軟從IIS 7.0起就開發了CPU Throttlling(CPU扼喉)功能,基本採用了上面預想的方法2,能夠事先對每一個程序池進行CPU限制,未雨綢繆,一旦出現問題站點,最多隻影響同在一個程序池的其餘用戶,而不會形成整機故障。到了IIS 8.0時代,這個功能變得更加細緻,下面我就來剖析新版IIS 8.0的CPU限制策略。blog

操做步驟分析進程

一、選擇應用程序池操做面板上的「高級設置」。事件

二、祕密就在「CPU」欄目下的「限制(百分比)」和「限制操做」這兩項。首先說明下第一項百分比,假如咱們想限制這個程序池的CPU爲10%,那麼應該填寫10000,即10*1000,這個地方要特別注意。資源

關於「限制(百分比)」這項,微軟的官方解釋是:限制(百分比)設置了應用程序池中的工做進程(即w3wp.exe)在「限制間隔「(默認5分鐘)的時間段內使用CPU時間的最大百分比。若是超出這個限制,系統將記錄到事件日誌中,而且觸發限制操做中的某個可選事件。開發

默認的限制(百分比)爲0,表示不進行任何CPU限制,而不是把CPU限制爲0。io

三、接下來就是最關鍵的限制操做項了。這個項中有4種選擇,分別闡述以下。程序

NoAction:超出限制後,除了寫入事件日誌以外,不執行任何操做。

KillW3WP:超出限制後,關閉應用程序池。咱們不推薦使用此項,由於出現問題站點是沒法預期的,若是貿然關閉,既沒法進一步判斷問題站點,也會形成網站沒法打開,引發其餘客戶的抱怨。

Throttle:將CPU嚴格限制爲百分比中的數值。問題站點發做時,會影響同一程序池下的其餘網站。

ThrottleUnderLoad:只有在系統CPU資源不足時,纔開始限制CPU使用率。舉例說明,假如當前系統CPU爲10%,設置某程序池限制CPU爲20%,問題站點佔用CPU爲30%。這時仍然不會限制CPU使用,由於總的CPU才40%,系統資源仍然綽綽有餘。

咱們推薦採用Throttle或ThrottleUnderLoad,根據經驗,ASP或ASP.NET網站能夠直接使用Throttle限制,某些PHP網站佔用CPU較高,採用Throttle限制後網站打開速度不理想,這時能夠採用ThrottleUnderLoad。

相關文章
相關標籤/搜索