性能測試的目標是評價系統當前性能;尋找瓶頸,優化性能;預測系統未來的性能,可擴展性;
性能測試瓶頸分析的關鍵步驟:
步驟一:性能測試與數據收集;
步驟二:性能瓶頸分析;
步驟三:性能調優解決方案。
步驟一:性能測試與數據收集;
數據收集,需要收集那些內容呢,下面來列一下關鍵點:
1、客戶端性能指標:並發用戶數、事務響應時間、每分鍾事務數;
2、非客戶端性能指標:服務器資源、網絡資源:
a、操作系統:如:WINDOWS、UNIX
b、數據庫服務器:如:Oracle、SQLServer、DB2、Sybase
c、中間件服務器:如:WebSphere、Weblogic
d、網絡:帶寬利用率、延遲、丟包、傳輸錯誤等 步驟二:性能瓶頸分析;
性能瓶頸分析的關鍵點包括:
1、響應時間;
2、並發用戶數;
3、吞吐量;
4、CPU;
5、內存和高速緩存;
6、磁盤(I/O)
7、中件間服務器性能;
8、數據庫服務器性能等。
從以下分析角度來分析性能瓶頸:
1、客戶端、網絡、服務器;
2、硬件、軟件;
3、應用軟件、Web服務器、數據庫服務器。
通過下圖,可以很好幫助我們去分析性能瓶頸;
下面對數據庫的瓶頸分析做個示例:
1、首先得到數據庫系統中每一條SQL語句在數據庫中執行的平均時間;
2、然后將效率低下並且頻繁調用的SQL語句的執行時間划分為以下部分:解析時間、執行時間、讀取時間和其他時間;
3、優化SQL。
步驟三:性能調優解決方案;
1、硬件平台:服務器CPU、內存以及硬盤等;
2、網絡平台:負載、延遲、傳輸故障等等;
3、軟件平台:數據庫、中間件;
4、應用級別:線程(進程)級別、會話級別、代碼級別;
下面對數據庫調優舉個例子:
1、數據庫實例優化
a、library cahce的優化;
b、數據字典高速緩存的優化;
c、數據高速緩存的優化;
d、回滾段的優化;
e、重做日志文件的優化;
f、排序區的優化;
g、數據庫IO的優化;
h、數據庫碎片的優化;
2、數據庫事件響應時間分析
a、等待事件分析;
b、會話級別的事件響應時間分析;
c、數據庫實例的響應時間分析;
3、數據庫鎖管理;
4、SQL語句的優化。