服务器性能瓶颈分析方法
1. 內(nèi)存分析方法
- 內(nèi)存分析用于判斷系統(tǒng)有無(wú)內(nèi)存瓶頸,是否需要通過增加內(nèi)存等手段提高系統(tǒng)性能表現(xiàn)。
- 內(nèi)存分析需要使用的計(jì)數(shù)器:Memory類別和Physical Disk類別的計(jì)數(shù)器。內(nèi)存分析的主要方法和步驟:
(1)首先查看Memory\Available Mbytes指標(biāo)
如果該指標(biāo)的數(shù)據(jù)比較小,系統(tǒng)可能出現(xiàn)了內(nèi)存方面的問題,需要繼續(xù)下面步驟進(jìn)一步分析。
注:在UNIX/LINUX中,對(duì)應(yīng)指標(biāo)是FREE(KB)
(2)注意Pages/sec、Pages Read/sec和Page Faults/sec的值
操作系統(tǒng)會(huì)利用磁盤較好的方式提高系統(tǒng)可用內(nèi)存量或者提高內(nèi)存的使用效率。這三個(gè)指標(biāo)直接反應(yīng)了操作系統(tǒng)進(jìn)行磁盤交換的頻度。
如果Pages/sec的計(jì)數(shù)持續(xù)高于幾百,可能有內(nèi)存問題。但Pages/sec值不一定就表明有內(nèi)存問題,可能是運(yùn)行使用內(nèi)存映射文件的程序所致。Page Faults/sec說(shuō)明每秒發(fā)生頁(yè)面失效次數(shù),頁(yè)面失效次數(shù)越多,說(shuō)明操作系統(tǒng)向內(nèi)存讀取的次數(shù)越多。此事需要查看Pages Read/sec的計(jì)數(shù)值,該計(jì)數(shù)器的閥值為5,如果計(jì)數(shù)值超過5,則可以判斷存在內(nèi)存方面的問題。
注:在UNIX/LINUX系統(tǒng)中,對(duì)于指標(biāo)是(page)si和(page)so.
(3)根據(jù)Physical Disk計(jì)數(shù)器的值分析性能瓶頸
對(duì)Physical Disk計(jì)數(shù)器的分析包括對(duì)Page Reads/sec和%Disk Time及Aerage Disk Queue Length的分析。如果Pages Read/sec很低,同時(shí)%Disk Time和Average Disk Queue Length的值很高,則可能有磁盤瓶頸。但是,如果隊(duì)列長(zhǎng)度增加的同時(shí)Pages Read/sec并未降低,則是內(nèi)存不足。
注:在 UNIX/LINUX系統(tǒng)中,對(duì)應(yīng)的指標(biāo)是Reads(Writes)per sec、Percent of time the disk is busy和Average number of transactions waiting for service.
?
--------------------------------------------------------------------------
?
2.處理器分析法
(1)首先看System\%Total Processor Time 性能計(jì)數(shù)器的計(jì)數(shù)值
該計(jì)數(shù)器的值體現(xiàn)服務(wù)器整體處理器利用率,對(duì)多處理器的系統(tǒng)而言,該計(jì)數(shù)器提醒所有CPU的平均利用率。如果該值持續(xù)超過90%,則說(shuō)明整個(gè)系統(tǒng)面臨著處理器方面的瓶頸,需要通過增加處理器來(lái)提高性能。
注:多處理器系統(tǒng)中,該數(shù)據(jù)本身不大,但PUT直接負(fù)載狀況極不均衡,也應(yīng)該視作系統(tǒng)產(chǎn)生處理器方面瓶頸。
(2)其次查看每個(gè)CPU的Processor\%Processor Time 和 Processor\%User Time 和 Processor\%Privileged Time
Processor\%User Time 是系統(tǒng)非核心操作消耗的CPU時(shí)間,如果該值較大,可以考慮是否能通過友好算法等方法降低這個(gè)值。如果該服務(wù)器是數(shù)據(jù)庫(kù)服務(wù)器, Processor\%User Time 值大的原因很可能是數(shù)據(jù)庫(kù)的排序或是函數(shù)操作消耗了過多的CPU時(shí)間,此時(shí)可以考慮對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行優(yōu)化。
(3)研究系統(tǒng)處理器瓶頸
查看 System\Processor Queue Length 計(jì)數(shù)器的值,當(dāng)該計(jì)數(shù)器的值大于CPU數(shù)量的總數(shù)+1時(shí),說(shuō)明產(chǎn)生了處理器阻塞。在處理器的%Process Time很高時(shí),一般都隨處理器阻塞,但產(chǎn)生處理器阻塞時(shí),Processor\%Process Time 計(jì)數(shù)器的值并不一定很大,此時(shí)就必須查找處理器阻塞的原因。
%DOC Time 是另一個(gè)需要關(guān)注的內(nèi)容,該計(jì)數(shù)器越低越好。在多處理器系統(tǒng)中,如果這個(gè)值大于50%,并且Processor\%Precessor Time非常高,加入一個(gè)網(wǎng)卡可能回提高性能。
?
--------------------------------------------------------------------------
?
3.磁盤I/O分析方法
(1)計(jì)算梅磁盤的I/O數(shù)
每磁盤的I/O數(shù)可用來(lái)與磁盤的I/O能力進(jìn)行對(duì)比,如果經(jīng)過計(jì)算得到的每磁盤I/O數(shù)超過了磁盤標(biāo)稱的I/O能力,則說(shuō)明確實(shí)存在磁盤的性能瓶頸。
每磁盤I/O計(jì)算方法
RAID0計(jì)算方法:(Reads +Writes)/Number of Disks
RAID0計(jì)算方法:(Reads +2*Writes)/2
RAID0計(jì)算方法:[Reads +(4*Writes)]/Number of Disks
RAID0計(jì)算方法:[Reads +(2*Writes)]/Number of Disks
(2)與Processor\Privileged Time 合并進(jìn)行分析
如果在Physical Disk 計(jì)數(shù)器中,只有%Disk Time 比較大,其他值都比較適中,硬盤可能會(huì)是瓶頸。若幾個(gè)值都比較大,且數(shù)值持續(xù)超過80%,則可能是內(nèi)存泄漏。
(3)根據(jù)Disk sec/Transfer進(jìn)行分析
一般來(lái)說(shuō),定義該數(shù)值小于15ms為Excellent,介于15~30ms之間為良好,30~60ms之間為可以接受,超過60ms則需要考慮更換硬盤或是硬盤的RAID方式了。
?
--------------------------------------------------------------------------
?
4.進(jìn)程分析方法
(1)查看進(jìn)程的%Processor Time值
每個(gè)進(jìn)程的%Processor Time反映進(jìn)程所消耗的處理器時(shí)間。用不同進(jìn)程所消耗的處理器時(shí)間進(jìn)行對(duì)比,可以看出具體哪個(gè)進(jìn)程在性能測(cè)試過程中消耗了最多的處理器時(shí)間,從而可以據(jù)此針對(duì)應(yīng)用進(jìn)行優(yōu)化。
(2)查看每個(gè)進(jìn)程產(chǎn)生的頁(yè)面失效
可以用每個(gè)進(jìn)程產(chǎn)生的頁(yè)面失效(通過PRCESS\PAGE FAILURES/SEC計(jì)數(shù)器獲得)和系統(tǒng)頁(yè)面失效(可以通過MEMORY\PAGE FAILURES/SEC計(jì)數(shù)器獲得)的比值,來(lái)判斷哪個(gè)進(jìn)程產(chǎn)生了最多的頁(yè)面失效,這個(gè)進(jìn)程要么是需要大量?jī)?nèi)存的進(jìn)程,要么是非常活躍的進(jìn)程,可以對(duì)其進(jìn)行重點(diǎn)分析。
(3)了解進(jìn)程的Process/Private Bytes
Process/Private Bytes是指進(jìn)程所分配的無(wú)法與其他進(jìn)程共享的當(dāng)前字節(jié)數(shù)量。該計(jì)數(shù)器主要用來(lái)判斷進(jìn)程在性能測(cè)試過程中有無(wú)內(nèi)存泄漏。例如:對(duì)于一個(gè)IIS之上的 WEB應(yīng)用,我們可以重點(diǎn)監(jiān)控inetinfo進(jìn)程的Private Bytes,如果在性能測(cè)試過程中,該進(jìn)程的Private Bytes計(jì)數(shù)器值不斷增加,或是性能測(cè)試停止后一段時(shí)間,該進(jìn)程的Private Bytes仍然持續(xù)在高水平,則說(shuō)明應(yīng)用存在內(nèi)存泄漏。
注:在UNIX/LINUX系統(tǒng)中,對(duì)應(yīng)的指標(biāo)是Resident Size
?
--------------------------------------------------------------------------
?
5.網(wǎng)絡(luò)分析方法
(1)Network Interface\Bytes Total/sec為發(fā)送和接收字節(jié)的速率,可以通過該計(jì)數(shù)器值來(lái)判斷網(wǎng)絡(luò)鏈接速度是否是瓶頸,具體操作方法是用該計(jì)數(shù)器的值和目前網(wǎng)絡(luò)的帶寬進(jìn)行相除,結(jié)果小于50%。
1Mdit/sec(兆比特/秒)=131072bytes/sec(字節(jié)/秒)
1byte=8bit
IOMeter安裝、配置
IOMeter是業(yè)界廣泛使用的IO性能測(cè)試軟件。通過使用不同的IOMeter設(shè)定值來(lái)呈現(xiàn)文件服務(wù)器(選擇范圍為512Bytes到64KB)和網(wǎng)站服務(wù)器(選擇512Bytes到512KB作為I/O范圍)的相應(yīng)負(fù)載。
在實(shí)際測(cè)試過程中可以使用IOMeter進(jìn)行如下測(cè)量:
Max IO:
為了得到完整的磁盤性能數(shù)據(jù),可以測(cè)試512Bytes到512MBytes等多種數(shù)據(jù)塊大小,并分別測(cè)試了100%讀取操作或100%寫入操作下的表現(xiàn),測(cè)試隨機(jī)率可以從0%-100%,用于檢測(cè)磁盤子系統(tǒng)的最大輸入輸出能力。從所有的數(shù)據(jù)中,可以分別得到的數(shù)據(jù)指IOps(每秒操作數(shù))以及MBps(傳輸速率)。
File Server:
文件服務(wù)器應(yīng)用在一個(gè)多用戶或網(wǎng)絡(luò)化的環(huán)境中專門用于文件的儲(chǔ)存,恢復(fù)和管理。不同用戶的訪問形成了多線程,因此,其工作負(fù)載是隨機(jī)性的。輸入輸出大小是可變的,取決于所操作的文件大小。讀/寫分布也是變化的。總的來(lái)說(shuō),一個(gè)頻繁使用的多用戶服務(wù)器應(yīng)該采用較高的隊(duì)列深度來(lái)模擬。
Web Server:
網(wǎng)站服務(wù)器應(yīng)用于處理多用戶通過Internet或Intranet進(jìn)行的訪問。這些請(qǐng)求具有典型的隨機(jī)性,并且在用戶訪問不同頁(yè)面或視頻應(yīng)用時(shí)大量偏向于讀請(qǐng)求。同樣,一個(gè)訪問頻繁網(wǎng)站服務(wù)器也應(yīng)該采用較高的隊(duì)列深度來(lái)模擬。最后,測(cè)試讀取尺寸從512Bytes到512KB不等,100%讀取操作,隨機(jī)率為100%,用于模擬Web服務(wù)器的性能。在實(shí)際的桌面環(huán)境中,小于4KB的塊訪問數(shù)量不少,但是由于操作系統(tǒng)的緩存的存在而具有一定的降低,主要的塊大小基于4KB。
IOMeter硬盤性能測(cè)試對(duì)CPU、內(nèi)存等參數(shù)并不是很敏感——當(dāng)然CPU要保證在測(cè)試中不能出現(xiàn)100%的占用率。
轉(zhuǎn)載于:https://www.cnblogs.com/preacher/p/6347185.html
總結(jié)
以上是生活随笔為你收集整理的服务器性能瓶颈分析方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OSGI 插件操作命令
- 下一篇: hdu3016 线段树+简单DP