性能測試從零開始——LoadRunner入門(三)[2] 性能測試工具
資源的利用和回收——就是馬兒少吃草。軟件系統的“草料”就是其依存的硬件和軟件資源,硬件資源包括客戶端硬件、服務器硬件和網絡硬件;軟件資源包括操作系統、中間件和數據庫等。其中要特別說的是,運行軟件系統需要使用到的服務器內存數量,對于整個系統的性能表現是至關重要的。因此,軟件系統能否在運行時有效地使用和釋放內存是我們考察軟件性能的一個重要因素。
對計算機來講,計算機內存為程序提供運行空間(有代碼區和數據區),如果內存不夠大,CPU就不能把全部的數據和程序放到內存里,只好放一部分在內存,一部分放在硬盤中,現用現取,而讀取內存和讀取硬盤數據的速度要差好幾個數量級,這就大大影響了計算機的工作效率。如果還不能理解內存的重要性的話,可以用個形象的例子來說明:
如果CPU是個畫家,那么內存就是他的工作臺。工作臺上放著畫布(被操作的數據),還有各種畫筆、刷子等各種工具(運行的程序)。如果工作臺(內存)不能足夠大,容納不下繪畫所使用的所有工具,那么畫家就需要不時地去儲藏室(硬盤等存儲設備)里取所需的工具,這就會大大影響繪畫的速度。
所以在評價一個系統性能的時候,要特別關注這個系統對內存的使用。
啟動時間——這是馬兒的加速度問題。用戶希望系統進入正常工作狀態的時間越短越好,尤其在主備系統中,軟件的啟動時間直接影響主備的切換效率。而不同軟件系統啟動時間會不同的。J2EE系統在第一次啟動的時候一般會比較慢,因為期間涉及緩存的加載、JSP頁面的編譯、Java class編譯成機器指令等。所以在第一次啟動應用感到非常慢是比較正常的,這也是J2EE或者Java應用的一個特點。而C/C++程序直接運行的是二進制機器代碼,啟動速度就要快一些。
伸縮性——馬兒要能快能慢。伸縮性是分析系統性能經常被忽略的一個方面。比如一個系統在50個并發用戶訪問的時候表現正常,但是當并發用戶達到1000的時候,系統表現如何?服務器的性能是逐漸下降呢,還是在某個拐點附近急劇下降呢?
如圖1-1所示,該圖是一個伸縮性不好的系統的表現,隨著并發用戶的增加,平均相應時間越來越長。系統最終會達到一個不可用的程度,沒有一個用戶會接受系統這樣的性能表現。
如圖1-2所示就是一個伸縮性較好的系統的表現,隨著并發用戶的增加,平均響應時間逐漸穩定下來。
穩定性——千里馬能夠“路遙知馬力”,而黑馬只能夠一時跑得快。用戶希望自己的軟件系統是千里馬,而不是黑馬。尤其是金融和電信系統,這些系統基本上都是每天24小時運轉,時時刻刻準備著為用戶提供服務。如果它們在運行一段時間后出現了問題,不能響應用戶的請求甚至破壞或丟失了數據,那么系統為用戶帶來的損失是巨大的。這種穩定性問題應該在軟件系統上線之前就被考慮并得到解決。 軟件測試
原文轉自:http://www.anti-gravitydesign.com