最近,部門的一個關(guān)于基礎(chǔ)數(shù)據(jù)和權(quán)限控制的項目已近尾聲,可由于性能的問題,一直沒有做好正式上線運行的準備,由此,引發(fā)了一些我對壓力測試的認識。
      MI 的LoadRunner8.0是一個工業(yè)級負載測試標準工具,用它進行壓力測試,可以節(jié)約公司的人力,財力, 它本身可以模擬成千上萬個用戶并發(fā)訪問系統(tǒng),給系統(tǒng)一定的壓力,模擬實際的生產(chǎn)環(huán)境,并且根據(jù)測試結(jié)果,它可以幫助我們分析系統(tǒng)的瓶頸,提供我們應(yīng)用系統(tǒng)的性能。它分三個部分,首先要錄制腳本,并在此基礎(chǔ)上進行一些編輯(例如設(shè)置集合點,事務(wù),參數(shù)化數(shù)據(jù)等),然后把這個腳本放到一個特定的場景里去執(zhí)行,執(zhí)行前可以進行一些運行期的設(shè)置,運行過程中可以監(jiān)控系統(tǒng)的一些反映參數(shù),最后通過它的分析工具來分析測試結(jié)果,給我們的應(yīng)用系統(tǒng)提供一些性能方面的合理化建議。
     壓力測試做完之后,雖然知道了問題,但是問題的方向是比較模糊的,為此,可以借助Quest公司的JProbe Suite性能測試工具進行內(nèi)存,代碼覆蓋,方法調(diào)用時間方面的分析,查出具體的問題,進行修改發(fā)布之后,再利用LoadRunner進行反復測試,看性能是否優(yōu)化了。
   
  在壓力測試的過程中,應(yīng)用服務(wù)器和數(shù)據(jù)庫的一些參數(shù)調(diào)優(yōu)也是非常重要的,針對應(yīng)用服務(wù)器,比較重要的參數(shù)有jvm占用堆大小,線程池的大小,連接池的大小,prepareStatement Cache條數(shù)大小;針對數(shù)據(jù)庫,表空間,索引,事務(wù)級別,鎖大小,臨時表這些參數(shù)也對系統(tǒng)應(yīng)用有重要的影響。同時,在java應(yīng)用里,sql優(yōu)化,數(shù)據(jù)庫連接的管理,緩存的使用,查詢分頁,防內(nèi)存泄露的代碼的使用會直接對應(yīng)用系統(tǒng)造成巨大的性能影響。

     跟蹤應(yīng)用服務(wù)器里jvm垃圾回收的頻率和所消耗時間的時候,可以加 -Xverbosegc參數(shù)來打印垃圾回收的詳細信息。分析gc日志的工具有GCAnalyze 和HeapRoot 。