三、如何分析監控的關鍵指標?
通過第二部分監控收集到性能度量關鍵指標,如何進行分析,并判斷是否存在性能瓶頸呢?以下主要從資源指標與系統指標兩方面進行闡述。
1.資源指標分析
判斷CPU是否是瓶頸的方法:一般情況下CPU滿負荷工作,有時候并不能判定為CPU出現瓶頸,比如Linux總是試圖要CPU盡可能的繁忙,使得任務的吞吐量最大化,即CPU盡可能最大化使用。因此,一般判斷CPU 為瓶頸,主要從兩方面:一是CPU空閑持續為0,二是運行隊列大于CPU核數(經驗值3-4倍),即可判定存在瓶頸,對于CPU高消耗主要由什么引起的,可能是應用程序不合理造成,也可能是硬件資源不足,需要具體問題具體分析,比如問題SQL語句引起,則需要跟蹤并優化引起CPU使用過高的SQL語句。
判斷內存是否是瓶頸的方法:一般至少有10%可用內存,內存使用率可接受上限為85%。當空閑內存變小時,系統開始頻繁地調動磁盤頁面文件,空閑內存過小可能是內存不足或內存泄漏引起,需要根據系統實際情況監控分析。
判斷磁盤I/O是否是瓶頸的方法:磁盤I/O對于數據庫服務器、文件服務器、流媒體服務器系統來說,更容易成為瓶頸,一般從以下幾個方面對磁盤I/O進行分析判斷:
?、?計算每磁盤I/O數
每磁盤I/O數可用來與磁盤的I/O能力進行對比,如果經過計算得到的每磁盤I/O數超過了磁盤標稱的I/O能力,則說明確實存在磁盤的性能瓶頸,每磁盤I/O計算方法如下表:
?、?監控磁盤讀寫,如果磁盤長時間進行大數據量讀寫操作,且cpu等待超過20%,則說明磁盤I/O存在問題,考慮提高磁盤I/O讀寫性能。
判斷網絡帶寬是否是瓶頸的方法:判斷網絡帶寬是否是系統運行性能瓶頸的首要條件是網絡帶寬是否會影響系統交易執行性能。例如:減小網絡帶寬,并發用戶數、響應時間與事務通過率等性能指標是否不能接受;或者增加網絡帶寬,并發用戶數、響應時間與事務通過率等性能指標會得到明顯提高。
在實際性能測試中,如果發現始終報連接超時,而實際手工訪問可以正常訪問,可以通過ping應用服務器IP或網關IP,如果出現網絡嚴重延遲或丟包,則說明網絡不穩定,需要檢查網絡。
通過對資源指標四個指標的分析,實際上各個方面都是互相依賴的,不能孤立的單從某個方面進行排查。當一個方面出現性能問題時,往往會引發其他方面的性能問題,例如,大量的磁盤讀寫勢必消耗CPU和IO資源,而內存的不足會導致頻繁地進行內存頁寫入磁盤、磁盤寫到內存的操作,造成磁盤IO瓶頸,同時,大量的網絡流量也會造成CPU過載,所以,在分析性能問題時,需要從各個方面進行考慮。
2.系統指標分析
并發用戶數:系統能夠支持的用戶數是系統容量的重要標志,并發用戶數用于度量系統在高并發量訪問下,系統的并行處理能力,一般如果系統中存在死鎖、資源爭用,在并發訪問下,由于請求處于隊列等待中,系統響應就會隨著時間變慢。
一般情況下,選用高吞吐量、高數據庫I/O、高商業風險的業務功能進行并發用戶訪問測試。
判斷系統能夠承受的最大并發用戶數,通常以滿足以下條件為準:
1、業務功能操作平均響應時間在合理范圍之內
2、事務成功率在合理范圍之內
3、 系統運行無故障(無異常宕機)
4、系統資源指標使用在合理范圍內
平均響應時間:對于客戶端用戶來說,最直觀的體驗就是訪問該頁面快或者慢,即響應時間的長短。比如在持續并發性能測試過程中,客戶感知訪問應用很慢,監控到的平均響應時間也逐漸變長,這時就需要先借助于監控到的資源指標,首先排除資源方面的限制因素,再從應用本身進行定位,如可以采用頁面細分工具(如httpwatch、Loadrunner Anaysis中的頁面組件細分)分析響應比較慢的頁面。
事務成功率、超時出錯率:事務成功率越高,則表明系統處理能力越大;而失敗事務主要由于系統響應慢,導致訪問業務功能超時,或者系統業務功能異常,不能正常訪問等,需要根據事務錯誤提示信息,具體分析。
綜上所述,軟件性能測試是執行、監控—〉分析—〉調優不斷進行的過程,即監控是為分析提供更多的參考數據,分析是為了進行調優,調優是解決當前系統存在的性能瓶頸,為用戶提供更好、更快的客戶體驗。由于分析、調優需要根據具體問題進行具體分析,本文未做過多說明,只對通用的關鍵指標進行監控分析,建議在實際工作中可從資源指標與系統指標兩個方面,層層檢測、步步排查,性能問題就無處藏身,一旦找到出現問題的原因,性能問題也就迎刃而解!
原文轉自:http://www.uml.org.cn/Test/201408182.asp