性能測試—瓶頸分析方法

1。內存分析方法算法

內存分析用於判斷系統有無內存瓶頸,是否須要經過增長內存等手段提升系統性能表現。數據庫

內存分析須要使用的計數器:Memory類別和Physical Disk類別的計數器。內存分析的主要方法和步驟:服務器

(1)首先查看Memory\Available Mbytes指標網絡

若是該指標的數據比較小,系統可能出現了內存方面的問題,須要繼續下面步驟進一步分析。ide

注: 在UNIX/LINUX中,對應指標是FREE(KB)函數

(2)注意Pages/sec、Pages Read/sec和Page Faults/sec的值性能

操做系統回利用磁盤較好的方式提升系統可用內存量或者提升內存的使用效率。這三個指標直接反應了操做系統進行磁盤交換的頻度。測試

若是Pages/sec的技術持續高於幾百,可能有內存問題。Pages/sec值不必定大就代表有內存問題,多是運行使用內存映射文件的程序所致。Page Faults/sec說明每秒發生頁面失效次數,頁面失效次數越多,說明操做系統向內存讀取的次數越多。此事須要查看Pages Read/sec的計數值,該計數器的閥值爲5,若是計數值超過5,則能夠判斷存在內存方面的問題。優化

注:在UNIX/LINUX系統中,對於指標是(page)si和(page)so.操作系統

(3)根據Physical Disk計數器的值分析性能瓶頸

對Physical Disk計數器的分析包括對Page Reads/sec和%Disk Time及Aerage Disk Queue Length的分析。若是Pages Read/sec很低,同時%Disk Time和Average Disk Queue Length的值很高,則可能有磁盤瓶頸。可是,若是隊列長度增長的同時Pages Read/sec並未下降,則是內存不足。

注:在 UNIX/LINUX系統中,對應的指標是Reads(Writes)per sec、Percent of time the disk is busy和Average number of transactions waiting for service.

2.處理器分析法

(1)首先看System\%Total Processor Time 性能計數器的計數值

該計數器的值體現服務器總體處理器利用率,對多處理器的系統而言,該計數器提醒全部CPU的平均利用率。若是該值持續超過90%,則說明整個系統面臨着處理器方面的瓶頸,須要經過增長處理器來提升性能。

注:多處理器系統中,該數據自己不大,但PUT直接負載情況極不均衡,也應該視做系統產生處理器方面瓶頸。

(2)其次查看每一個CPU的Processor\%Processor Time 和 Processor\%User Time 和 Processor\%Privileged Time

Processor\%User Time 是系統非核心操做消耗的CPU時間,若是該值較大,能夠考慮是否能經過友好算法等方法下降這個值。若是該服務器是數據庫服務器, Processor\%User Time 值大的緣由極可能是數據庫的排序或是函數操做消耗了過多的CPU時間,此時能夠考慮對數據庫系統進行優化。

(3)研究系統處理器瓶頸

查看 System\Processor Queue Length 計數器的值,當該計數器的值大於CPU數量的總數+1時,說明產生了處理器阻塞。在處理器的%Process Time很高時,通常都隨處理器阻塞,但產生處理器阻塞時,Processor\%Process Time 計數器的值並不必定很大,此時就必須查找處理器阻塞的緣由。

%DOC Time 是另外一個須要關注的內容,該計數器越低越好。在多處理器系統中,若是這個值大於50%,而且Processor\%Precessor Time很是高,加入一個網卡可能回提升性能。

3。磁盤I/O分析方法

(1)計算梅磁盤的I/O數

梅磁盤的I/O數可用來與磁盤的I/O能力進行對比,若是通過計算獲得的每磁盤I/O數超過了磁盤標稱的I/O能力,則說明確實存在磁盤的性能瓶頸。

每磁盤I/O計算方法

RAID0計算方法:(Reads +Writes)/Number of Disks

RAID0計算方法:(Reads +2*Writes)/2

RAID0計算方法:[Reads +(4*Writes)]/Number of Disks

RAID0計算方法:[Reads +(2*Writes)]/Number of Disks

(2)與Processor\Privileged Time 合併進行分析

若是在Physical Disk 計數器中,只有%Disk Time 比較大,其餘值都比較適中,硬盤可能會是瓶頸。若幾個值都比較大,且數值持續超過80%,則多是內存泄漏。

(3)根據Disk sec/Transfer進行分析

通常來講,定義該數值小於15ms爲Excellent,介於15~30ms之間爲良好,30~60ms之間爲能夠接受,超過60ms則須要考慮更換硬盤或是硬盤的RAID方式了。

4。進程分析方法

(1)查看進程的%Processor Time值

每一個進程的%Processor Time反映進程所消耗的處理器時間。用不一樣進程所消耗的處理器時間進行對比,能夠看出具體哪一個進程在性能測試過程當中消耗了最多的處理器時間,從而能夠據此針對應用進行優化。

(2)查看每一個進程產生的頁面失效

能夠用每一個進程產生的頁面失效(經過PRCESS\PAGE FAILURES/SEC計數器得到)和系統頁面失效(能夠經過MEMORY\PAGE FAILURES/SEC計數器得到)的比值,來判斷哪一個進程產生了最多的頁面失效,這個進程要麼是須要大量內存的進程,要麼是很是活躍的進程,能夠對其進行重點分析。

(3)瞭解進程的Process/Private Bytes

Process/Private Bytes是指進程所分配的沒法與其餘進程共享的當前字節數量。該計數器主要用來判斷進程在性能測試過程當中有無內存泄漏。例如:對於一個IIS之上的 WEB應用,咱們能夠重點監控inetinfo進程的Private Bytes,若是在性能測試過程當中,該進程的Private Bytes計數器值不斷增長,或是性能測試中止後一段時間,該進程的Private Bytes仍然持續在高水平,則說明應用存在內存泄漏。

注:在UNIX/LINUX系統中,對應的指標是Resident Size

5。網絡分析方法

Network Interface\Bytes Total/sec爲發送和接收字節的速率,能夠經過該計數器值來判斷網絡連接速度是不是瓶頸,具體操做方法是用該計數器的值和目前網絡的帶寬進行比較。


RAID0計算方法:[Reads +(2*Writes)]/Number of Disks

(2)與Processor\Privileged Time 合併進行分析

若是在Physical Disk 計數器中,只有%Disk Time 比較大,其餘值都比較適中,硬盤可能會是瓶頸。若幾個值都比較大,且數值持續超過80%,則多是內存泄漏。

(3)根據Disk sec/Transfer進行分析

通常來講,定義該數值小於15ms爲Excellent,介於15~30ms之間爲良好,30~60ms之間爲能夠接受,超過60ms則須要考慮更換硬盤或是硬盤的RAID方式了。

相關文章
相關標籤/搜索