各項硬件的資源,如CPU、內存、硬盤輸入輸出、網絡帶寬等等。在實際查看架構以前,先強調一個觀念,不論是使用系統上哪種資源,當使用率持續超過80%時,系統的性能必定會急速下滑,而不會顯示線性關係,以下圖所示:
響應時間
使用率 80%
資源使用率與系統響應時間的關係
注:從《操做系統》的知識來理解,若是在多用戶環境中cup的使用率大於80%,進程就會在運行隊列中花費大量的等待時間,響應時間和吞吐量就會降低。
3.1,內存Memory
一般系統中所發生的問題是因爲內存不足所致使,這是較常見的。因此咱們應該先監視內存,確認咱們的服務器有足夠的內存。若要執行 windows 2000 上的 iis 5.0(如MOD的web服務),一個專用web 服務器所需 ram 的最小容量是 128mb,但最好是 256mb 到 1gb。由於「iis 文件緩存」默認是使用最多一半可用的內存,所以備有的內存越多,「iis 文件緩存」就越多。
附註:windows 2000 advanced server 最多可支持 8gb 的 ram,可是「iis文件緩存」將不會利用 4gb 以上的 ram。
全部在Windows系統執行的應用程序都覺得自已最起碼有2GB的連續內存(稱之爲虛擬內存),當應用程序的線程在存取內存時,操做系統會將其映射(mapping)到某塊物理內存,若物理內存不足,操做系統就把物理內存中某些較少用到的區塊寫至硬盤,以空出該物理內存給當前須要的程序。
Available MBytes 可用物理內存數
說明:Available MBytes 是計算機上運行進程可用的物理內存數量,以兆字節爲單位。經過計算清零、空閒和待命內存列表的內存空間總數而獲得。空閒內存能夠立刻使用; 清零內存是由零值填滿的內存頁,用來防止後續進程得到舊進程使用的數據; 待命內存是從進程工做集(其物理內存)中刪除而後進入磁盤的內存,可是該內存仍然能夠收回。該計數器僅顯示最後一次觀察到的值; 不是平均值。
技 術 :通常要保留10%的可用內存。最低最低不能<4M,此值太小多是內存不足或內存泄漏;
原 因 :由於IIS默認最多會使用50%的可用內存供文件緩存使用,因此要保留10%的可用內存(以供尖峯時間使用)。
知識點:物理內存、虛擬內存、IIS文件緩存、清0內存(程序常發生的錯誤)、待命內存。
Page Faults/sec、Pages Input/sec、Page Reads/sec
注(重要):致使嚴重的延遲緣由:是由於硬件分頁錯誤。
說 明: Page Faults/sec 是指處理器處理錯誤頁的綜合速率。用錯誤頁數/秒來計算。當處理器請求一個不在其工做集(在物理內存中的空間)內的代碼或數據時出現的頁錯誤。這個計數器包括硬錯誤(那些須要磁盤訪問的)和軟錯誤(在物理內存的其它地方找到的錯誤頁)。許多處理器能夠在有大量軟錯誤的狀況下繼續操做。可是,硬錯誤能夠致使明顯的拖延。
Pages Input/sec 指爲解決頁錯誤從磁盤上讀取的頁數。(當處理須要不在其工做集或物理內存的任何地方的代碼或數據,而須要從磁盤上檢索時出現硬頁錯誤)。
Page Reads/sec 是指爲解析硬頁錯誤而讀取磁盤的次數。(當處理請求的硬 頁錯誤不在工做集和物理內存其它地方中的代碼或數據,而必須從磁盤上檢索時 就會出現硬頁錯誤)。若是 Page Reads/Sec 比率持續保持爲 5,表示可能內存不足(閾值爲>5.越小越好)。
可能引發頁面錯誤的操做:應用程序向內存請求一個分頁,但系統沒法在所需的位置上找到它,就構成了一個頁面錯誤。
技 術:
總述:可能涉及到1,因爲頁交換而致使內存不足;2,因爲頁交換而致使磁盤瓶頸;
當這些值很低時,服務器應該能夠很快地響應請求;當這些值較高時,是由於你花了太多的內存在緩存處理上,而沒有留足夠的內存供系統的其它部份使用。能夠增長內存或下降緩存的ram大小來解決;
詳細:
page Faults/sec:只代表數據不能在內存的指定工做集中當即使用;
page Input/sec: page input/sec > page reads/sec;
page Reads/sec: 閾值爲>5.越小越好,大數值表示磁盤讀而不是緩存讀;
Page/sec:指爲解析硬頁錯誤從磁盤讀取或寫入磁盤的頁數(是Pages Input/sec 和 Pages Output/sec 的總和)。其值推薦00-20若是服務器沒有足夠的內存處理其工做負荷,此數值將一直很高。若是大於80,表示有問題(太多的讀寫數據操做要訪問磁盤,可考慮增長內存或優化讀寫數據的算法),若是值比較低,說明Web 服務器響應請求比較快,不然多是服務器系統內存短缺引發( 也多是緩存太大,致使系統內存太少)。
3.2,Processor
隨着用戶請求從網站得到快速的響應時間,以及在這些網站上不斷增長的動態內容,須要利用到快速、有效的處理器用量。當一個或多個進程幾乎耗盡全部處理器時,就會發生瓶頸,這會迫使準備好執行的進程線程必須在隊列中等待處理器時間。
(web方面) windows 2000 及 iis 5.0 的最大性能增益來自於解決內存問題。在決定改變web 服務器上處理器的個數以前,請先排除內存問題,再監視下列「性能計數器」。
% Processor Time 指處理器執行非閒置線程時間的百分比;通俗一點講就是CPU 使用率。這是監視處理器活動的主要指示器。它經過在每一個範例間隔中衡量處理器用於執行閒置處理線程的時間,而且用100%減去該值得出。(每臺處理器有一個閒置線程,該線程在沒有其它線程能夠運行時消耗週期)。可將其視爲範例間隔用於作有用工做的百分比。
正常值<90,此值過大表示處理器的性能已經不能應付程序的要求,要換更快的處理器。該數值持續超過 90%,則表示此測試的負載對於目前的硬件過於沉重。排除內存因素,若是該計數器的值比較大,而同時網卡和硬盤的值比較低,那麼能夠肯定CPU 瓶頸。
Processor Queue Length:是指處理列隊中的線程數。顯示在由 Web服務器全部處理器共享的隊列中等待執行的線程數。若是處理器列隊中老是有2個以上的線程一般表示處理器堵塞。
參考值:小於2。處理器瓶頸會致使該值持續大於 2。
3.3, Physical Disk:
由於 MOD的WEB(iis 5.0) 會將記錄文件寫入磁盤上,因此在通常磁盤活動中,甚至會有高達 100 % 的客戶端緩存存取次數。通常來講,若是有記錄之外的大量磁盤讀取活動,即表示系統上有其它區域須要調整。例如,硬件分頁錯誤會致使大量的磁盤活動,但它們表示 ram 不足。
%Disk Time %: 指所選磁盤驅動器忙於爲讀或寫入請求提供服務所用的時間的百分比。若是三個計數器都比較大,那麼硬盤不是瓶頸。若是隻有%Disk Time比較大,另外兩個都比較適中,硬盤可能會是瓶頸。在記錄該計數器以前,請在Windows 2000 的命令行窗口中運行diskperf -yD。正常值<10,此值過大表示耗費太多時間來訪問磁盤,可考慮增長內存、更換更快的硬盤、優化讀寫數據的算法。若數值持續超過80 (此時處理器及網絡鏈接並無飽和),則多是內存泄漏。
Pages per second : 每秒鐘檢索的頁數。該數字應少於每秒一頁。
若是這三個計數器(processor: % processor time, network interface connection: bytes total/sec及physicaldisk: % disk time)的值都很高,則硬盤不會引發站點的瓶頸。
補充:
Avg. Disk Queue Length 指讀取和寫入請求(爲所選磁盤在實例間隔中列隊的)的平均數。正常值<0.5,此值過大表示磁盤IO太慢,要更換更快的硬盤。
Disk Transfers/sec 指在此盤上讀取/寫入操做速率。正常值<(Disk Bytes/sec)/3,此值過大表示系統要求的IO速度已接近硬盤的最大速度,要更換更快的硬盤。
磁盤使用狀況計數器和內存計數器(磁盤瓶頸or內存不足?):
Physical Disk\ % Disk Time 、Physical Disk\ Avg.Disk Queue Length 例如,包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。若是頁面讀取操做速率很低,同時 % Disk Time 和 Avg.Disk Queue Length的值很高,則可能有磁盤瓶徑。可是,若是隊列長度增長的同時頁面讀取速率並未下降,則內存不足。
3.4, 網絡容量、等待時間及帶寬
測試目標:在系統試運行以後,須要及時準確地瞭解網絡上正在發生什麼事;什麼應用在運行,如何運行;多少PC正在訪問LAN或WAN;哪些應用程序致使系統瓶頸或資源競爭
做用
1,分析關鍵應用程序的性能
2,定位問題的根源是在客戶端、服務器、應用程序仍是網絡
3,哪些應用程序佔用大量帶寬
基本上,網絡是客戶端向服務器傳送請求的線路。它花在您的服務器上來回傳遞這些請求及響應的時間,對用戶能察覺的服務器性能來講是個最大限制因素之一。這種請求-響應的循環時間就稱爲等待時間,等待時間對於web 服務器管理員來講幾乎是沒法控制的。例如,您對 internet 上速度緩慢的路由器,或是客戶端及服務器之間的物理距離所能做的處理實在很少。
在主要是由靜態內容組成的站點上,網絡帶寬最有多是性能瓶頸的來源。即便是通常的服務器也可能用滿一條 t3 鏈接 (45mbps) 或 100mbps fast ethernet 鏈接。測量有效帶寬最簡單的方法是斷定您的服務器是以哪一個速度傳送及接收資料的。
Network Interface Bytes Total/sec: 爲發送和接收字節的速率,包括幀字符在內。斷定網絡鏈接是否存在瓶頸。若要在傳送量中留些空間供尖峯時間用,則不該常使用超過 50% 的容量。若是這個數字十分接近鏈接的容量,而處理器及內存的使用都很適中,則此鏈接也會是個問題。參考值:該計數器的值和目前網絡的帶寬相除,結果應該小於50%。
若是您正在計算機上執行的其餘服務也使用網絡鏈接,請監視「web service: maximum connections」及「web service: total connection attempts」計數器,以檢查您的web服務器是否可以儘量地使用它須要的鏈接數目。請記得將這些數字與內存及處理器使用量做比較,如此才能肯定鏈接就是問題,而不是其它組件有問題。
Connection Attempts/sec:Web服務嘗試鏈接的頻率。
Maximun Connections:「最大鏈接數」是和Web服務同時創建起來的最大鏈接數。
web