最近做壓力測試的總結
最近做 portal 的壓力測試,一個字“累”。其中犯了不少錯誤,白白加了幾天班,也有一些體會,就記錄下來,希望對大家有所幫助。
首先講壓力測試環境。這個很是關鍵,我們就是在這個上面吃了苦頭。我們用的 loadrunner ,原理也很簡單,一臺主控機,控制多臺客戶機,模擬并發用戶訪問應用。然后需要能實時監控各相關應用服務器, ldap 服務器等的性能。這里每臺客戶機最好能使用同樣的配置,使用足夠帶寬的網絡,給予同樣的負載(模擬同樣數量的用戶)。同時要注意監控客戶機的 cpu 和網絡狀況,時刻保證 cpu 和網絡利用率低于 100% 。我們犯的很大錯誤就是使用各自的筆記本,而且都使用的是一個 10M hub 牽出的網線,這樣導致實際的網絡阻塞,既沒有給予服務器足夠的負載,又導致報告的響應時間比實際更長,從而帶來了后續很多的無用測試。
然后講測試方法。用的較多的還是持續壓力測試,就是持續給予服務器一段時間的并發量(一般為 5 到 10 分鐘),然后看平均響應時間是否在可以接受的范圍內。這個“可接受”要視應用類型和實際的并發用戶而定,如何估計并發就要靠經驗了。對于 portal 而言,由于要與眾多的應用接口,如進行 SSO ,獲取數據等,有很大程度也依賴于其它應用的性能,其性能要求不會太高。我們測試首頁的性能,在放上全部的 portlet 的情況下, 100 個并發的平均響應時間就在 17s 左右,這肯定是不能接受的( 10s 只能算勉強可以)。接下來就是發現性能瓶頸,并嘗試進行優化了。
初步的發現瓶頸的方法也很簡單,通過對 portlet 的增減,發現最影響性能的 portlet ,然后不斷優化,直至達到可以接受范圍。發現瓶頸所在了,就得進一步確定是什么原因:是我們本身程序的問題,還是其它應用接口性能不佳等等。這里光靠猜是不行的,要講數據講事實,記錄時間日志就是簡單有效的辦法,我們對各個時間點打印了日志,比如 doview 方法的全部執行時間, jsp 的載入時間,具體接口的執行時間等。有些接口可能在壓力較小的情況下性能不錯,而在大壓力情況下出現性能隱患,所以一定要在進行壓力測試后查看日志。我們就是這樣發現了性能隱患,同時更進一步對各方面進行優化,直至達到客戶可以接受為止。
由于不是專門的測試人員,很多地方都是實際項目中的體會,也沒什么理論基礎。有什么不對的地方,大家多交流。
posted on 2006-10-15 23:13 pesome 閱讀(2524) 評論(1) 編輯 收藏 所屬分類: 生活隨筆