在實際測試中,由於各種原因,測試得到的性能指標關系往往並不遵循前面介紹的關系。常見的現象有CPU壓不滿或者在CPU壓滿前,相關性能指標曲線已不正常。雖然導致這種現象的原因很多,但有一點可以肯定的是,系統(硬件或軟件系統)的某處一定出現了瓶頸。此時,測試人員應配合開發人員進行分析盡快找出瓶頸的所在。
1、查看cpu是否時瓶頸
首先查看CPU%是否已接近100%,若已經接近(>95%),再看其他指標的拐點出現的時刻是否與CPU壓滿的時刻基本一致,若一致,則說明測試不存在瓶頸。若CPU未能壓滿,在繼續查找其他瓶頸。
查看CPU利用率。建議CPU指標如下:
a) User Time:65%~70%
b) System Time:30%~35%
c) Idle:0%~5%
如果us,sy高於這個指標可以判斷CPU有瓶頸
2、查看內存是否瓶頸
內存不足時,操作系統會使用虛擬內存,平凡進行頁交換,這回造成ART(activity respond time)的上升。
3、查看磁盤I/O是否瓶頸
磁盤I/O成為瓶頸時,會出現磁盤I/O繁忙,導致交易執行時在I/O處等待。
如圖,當磁盤的Busy%>20%時,說明磁盤的I/O已比較繁忙。
4、查看中間是否瓶頸
空閑線程的影響
日志級別的影響
JVM的影響
JDBC連接池大小的影響
查看網絡帶寬是否瓶頸
性能測試大都在100M的局域網內進行,一般帶寬不會成為瓶頸,但若是帶寬<10M或是做一些大文件下載上傳的測試時,網絡帶寬就有可能成為瓶頸。
5、查看數據庫是否瓶頸
聯機事務處理系統需要頻繁操作數據庫,因此,數據庫的設計、部署方式等會對系統的性能有較大影響。
造成數據庫瓶頸的因素比較多,常見的有:
數據庫操作頻繁,占用CPU較大
數據庫表未建索引,導致操作數據庫時間過長
數據庫操作的常用表在一個表空間內,且在一個磁盤上,導致磁盤讀寫頻繁
數據庫的連接池設置太小,導致數據庫連接出現排隊
6、分析程序內部實現機制是否瓶頸
程序內部的一些實現機制也可能會成為瓶頸,比如同步、異步方式,監控機制等。