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