定位性能瓶頸方法

碰到過的性能問題:

  1. 在高併發的情況下,產生的處理失敗(比如:數據庫連接池過低,服務器連接數超過上限,數據庫鎖控制考慮不足等)

  2. 內存泄露(比如:在長時間運行下,內存沒有正常釋放,發生宕機等)

  3. CPU使用偏離(比如:高併發導致CPU使用率過高)

  4. 日誌打印過多,服務器無硬盤空間

  如何定位這些性能問題:

  1. 查看系統日誌,日誌是定位問題的不二法寶,如果日誌記錄的全面,很容易通過日誌發現問題。

  比如,系統宕機時,系統日誌打印了某方法執行時拋出out of memory的錯誤,我們就可以順藤摸瓜,很快定位到導致內存溢出的問題在哪裏。

  2. 利用性能監控工具,比如:JAVA開發B/S結構的項目,可以通過JDK自帶的Jconsole,或者JProfiler,來監控服務器性能,Jconsole可以遠程監控服務器的CPU,內存,線程等狀態,並繪製變化曲線圖。

  利用Spotlight可以監控數據庫使用情況。

  我們需要關注的性能點有:CPU負載,內存使用率,網絡I/O等

  3. 工具和日誌只是手段,除此之外,還需要設計合理的性能測試場景

  具體場景有:性能測試,負載測試,壓力測試,穩定性測試,浪湧測試等

  好的測試場景,能更加快速的發現瓶頸,定位瓶頸

  4. 瞭解系統參數配置,可以進行後期的性能調優

        最後要說的是:做性能測試的時候,我們一定要確保瓶頸不要發生在我們自己的測試腳本和測試工具上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章