性能測試中會遇到的瓶頸
發表于:2020-06-30來源:未知作者:未知點擊數:
標簽:
針對網絡瓶頸,現在冒似很少,不過也不是沒有,首先想一下如果有網絡的阻塞,斷網,帶寬被其他資源占用,限速等情況,應用程序或系統會是什么情況,針對WEB,無非是超時,HTT
性能測試中如何定位
性能瓶頸:
性能測試這種測試方式在發生過程中,其中一個過渡性的工作,就是對執行過程中的問題,進行定位,對功能的定位,對負載的定位,最重要的,當然就是問題中說的“瓶頸”,接觸
性能測試不深,更非專家,自己的理解,瓶頸產生在以下幾方面:
1、網絡瓶頸,如帶寬,流量等形成的網絡環境
2、應用服務瓶頸,如中間件的基本配置,CACHE等
3、系統瓶頸,這個比較常用:應用
服務器,
數據庫服務器以及客戶機的CPU,內存,硬盤等配置
4、數據庫瓶頸,以ORACLE為例,SYS中默認的一些參數設置
5、應用程序本身瓶頸,
針對網絡瓶頸,現在冒似很少,不過也不是沒有,首先想一下如果有網絡的阻塞,斷網,帶寬被其他資源占用,限速等情況,應用程序或系統會是什么情況,針對WEB,無非是超時,HTTP400,500之類的錯,針對一些客戶端程序,可能也是超時,掉線,服務器下發的,需要服務器返回的信息獲取不到還有一種更明顯的情況,應該就是事務提交慢,如果封裝事務的代碼再不完善,一般造成的錯誤,無非就是數據提交不完整,或者因為網終原因+代碼
缺陷造成重復性提交。如此綜合下來,肯定是考慮網絡有瓶頸,然后考慮網絡有問題時,怎樣去優化,是需要優化交互的一些代碼,還是接口之類的。
應用服務的瓶頸的定位,一般像tomcat,
weblogic之類的,有默認的設置,也有經過架構和維護人員進行試驗調試的一些值,這些值一般可以滿足程序發布的需要,不必進行太多的設置,可能我們認識的最基本的就是JAVA_OPTS的設置,maxThreads,time_out之類的參數我們做借助LR,Jemeter或
webload之類的工具,執行性能測試,尤其是對應用服務造成了壓力,如果應用服務有瓶頸,一般我們設置的log4j.properties,日志都會記錄下來。然后根據日志,去進一步確定應用服務的問題
系統瓶頸,這個定位雖說比較復雜,但是有很多前輩的經驗值參考,不作說明,相信用LR的同行,也可以從性能記數器中得出一些指標值,加上nagios,cacti,可以很明顯的看出系統哪些資源夠用,哪些資源明顯不夠用。不過,一般系統瓶頸的造成,是因為應用程序本身造成的。關于這點兒的分析和定位,就需要歸入應用程序本身瓶頸分析和定位了。
現在基本所有的東東,都離不開數據庫這個后臺,數據庫的瓶頸實在是不知道是什么概念,數據庫管理員的工作,數據庫管理員日常做的工作,可能就是有瓶頸定位的工作,比如:查詢一下V$sys_event,V$sysstat,v$syssql之類的表,比對一下日常正常情況下的監控數據
應用程序瓶頸,這個是測試過程中最需要去關注的,需要
測試人員和
開發人員配合執行,然后定位,我這兒做的大都是執行性的,比如會有腳本去運行,
開發人員會結合jprofiler之類的工具,去看一下堆遍歷,線程剖析的情況確定哪兒有問題。大致是這樣,沒有實際操作過
CPU瓶頸問題
1、System\%Total processor time如果該值持續超過90%,且伴隨處理器阻塞,則說明整個系統面臨著處理器方面的瓶頸.
注:在某些多CPU系統中,該數據雖然本身并不大,但CPU之間的負載狀況極不均衡,此時也應該視作系統產生了處理器方面的瓶頸.
2、排除內存因素,如果Processor %Processor Time計數器的值比較大,而同時網卡和硬盤的值比較低,那么可以確定CPU 瓶頸。(內存不足時,有點進程會轉移到硬盤上去運行,造成性能急劇下降,而且一個缺少內存的系統常常表現出很高的CPU利用率,因為它需要不斷的掃描內存,將內存中的頁面移到硬盤上。)
造成高CPU使用率的原因:
頻繁執行程序,復雜運算操作,消耗CPU嚴重
數據庫查詢語句復雜,大量的 where 子句,order by, group by 排序等,CPU容易出現瓶頸
內存不足,IO磁盤問題使得CPU的開銷增加
磁盤I/O分析
【監控指標】:PhysicalDisk/%Disk time,PhysicalDisk/%Idle Time,Physical Disk\ Avg.Disk Queue Length, Disk sec/Transfer
【參考值】:%Disk Time建議閾值90%
Windows資源監控中,如果% Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec頁面讀取操作速率很低,則可能存在磁盤瓶徑。
Processor%Privileged Time該參數值一直很高,且如果在 Physical Disk 計數器中,只有%Disk time 比較大,其他值都比較適中,硬盤可能會是瓶頸。若幾個值都比較大, 那么硬盤不是瓶頸。若數值持續超過80%,則可能是內存泄露。如果 Physical Disk 計數器的值很高時該計數器的值(Processor%Privileged Time)也一直很高, 則考慮使用速度更快或效率更高的磁盤子系統。
原文轉自:https://www.cnblogs.com/linyu51/p/13187083.html