軟體測試學習資源—瓶頸分析方法
1
、記憶體分析法
記憶體分析用於判斷系統有無記憶體瓶頸,是否需要透過增加記憶體等手段提高系統效能表現。
記憶體分析需要使用的計數器: Memory 類別和 Physical Disk 類別的計數器。記憶體分析的主要方法和步驟:
( 1 )首先檢視 Memory\Available Mbytes 指標
如果該指標的資料比較小,系統可能出現了記憶體方面的問題,需要繼續下面步驟進一步分析。
注: 在 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 方式了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69914734/viewspace-2653903/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 軟體測試:瓶頸分析方法
- 效能測試-服務端瓶頸分析思路服務端
- 效能測試瓶頸調優
- 軟體測試學習資源—Git 基礎使用Git
- 效能測試瓶頸之CPU問題分析與調優
- 軟體測試學習——移動端功能測試分析
- 通過專案管理軟體克服管理瓶頸的方法?專案管理
- 軟體測試需求分析方法
- 最新軟體測試學習資源(小白入門到精通)
- 記錄node記憶體瓶頸分析記憶體
- 軟體測試學習教程—軟體測試質量
- 軟體測試學習 ——五種軟體測試模型模型
- LightDB資料庫效能瓶頸分析(一)資料庫
- 軟體測試學習教程—軟體測試基本知識
- 軟體測試整理學習
- 學習旅途(軟體測試)
- Oracle效能優化方法論的發展之四:基於資源瓶頸分析的優化方法論Oracle優化
- 軟體測試學習教程—迴歸測試
- 軟體測試培訓分享:學習能力差可以學習軟體測試嗎
- 【分享】—如何學習軟體測試
- 【軟體測試】學習筆記筆記
- 軟體測試學習路線
- 軟體測試學習網站有哪些?怎麼學軟體測試呢?學習網站
- 軟體測試學習教程—軟體測試基礎理論五
- 軟體測試學習教程—軟體測試基礎理論六
- 軟體測試學習教程—軟體測試基礎理論四
- 軟體測試學習教程—軟體測試基礎理論三
- 2020.10.8 效能課堂筆記-記憶體瓶頸分析筆記記憶體
- 利用PerfDog分析遊戲效能瓶頸遊戲
- Chrome執行時效能瓶頸分析Chrome
- 如何使用 Wireshark 分析 TCP 吞吐瓶頸TCP
- 軟體測試學習資源—登陸、新增、刪除、查詢模組測試用例設計
- 如何解決SQL Server資料庫的軟硬體效能瓶頸OCSQLServer資料庫
- 軟體測試學習教程——JDBC配置JDBC
- 軟體測試學習教程——WEB測試之JS記憶體WebJS記憶體
- 軟體測試學習教程——LoadRunner實現介面測試
- 軟體測試教程之手機軟體測試方法
- 軟體測試-需求分析