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