java效能調優的基本思路
阿新 • • 發佈:2019-01-22
java效能調優的基本知識 http://wenku.baidu.com/view/0b5e5b08581b6bd97f19eab3.html
Web應用影響效能的集中體現在:網路、CPU、記憶體、IO、資料庫、快取
應用系統的效能測試通常有如下過程:
1) 分析效能需求:瞭解系統性能需求,建立效能測試資料模型,分析效能需求,確定合理性能目標;
2) 制定效能測試計劃:規劃效能測試所需的測試環境、測試程式,測試的人員組織,測試日程等;
3) 設計場景:設計效能測試的測試案例;
4) 根據場景編寫程式、編寫指令碼、修改應用系統等;
5) 執行效能測試:建立測試環境、執行測試案例,記錄測試時的系統的各個可能的引數;
6) 分析測試結果:根據應用系統表現和測試時的系統記錄,分析發生的問題和測試結果;
7) 優化效能:提高系統的效能,使系統在測試時有更好的表現;
8) 效能迴歸測試:驗證系統的優化以及對相關功能模組的影響;
9) 測試報告:對測試進行總結,記錄已改進的問題及相關改進的修改,制定未解決問題的對策,提出系統執行、維護和改進建議。
確定清晰的效能目標,並按優先順序排列:
利用科學的測試工具對應用程式進行測試,並記錄測試結果。
把分散式系統拆分成元件:Web層、業務層、整合層、以及網路傳輸時間,分別進行調優。
有系統的科學調優
遵循一定的程式:測試效能→找出瓶頸→假設造成瓶頸的因素→測試假設是否成立→修改應用→再次測試效能。
確定影響效能的因素:CPU、Memory還是IO。
找出主要的瓶頸,首先解決最容易的,再重複測試。
一次修改一個瓶頸,不要對不需要的地方進行調優。
提高CPU效能:更快的程式碼、SQL,更好的演算法,減少短期生存的物件。
提高記憶體效能:減少或減小長期生存的物件。
提高IO效能:重新設計應用,減少IO的互動。
優化完成之後,進行QA測試。
在程式碼中記錄優化的地方,並對舊程式碼進行註釋。
網路出現wait_time問題 解決辦法 網路調參:設定/proc/sys/net/ipv4/tcp_tw_recycle為1,加快TIME_WAIT狀態回收
Web應用影響效能的集中體現在:網路、CPU、記憶體、IO、資料庫、快取
應用系統的效能測試通常有如下過程:
1) 分析效能需求:瞭解系統性能需求,建立效能測試資料模型,分析效能需求,確定合理性能目標;
2) 制定效能測試計劃:規劃效能測試所需的測試環境、測試程式,測試的人員組織,測試日程等;
3) 設計場景:設計效能測試的測試案例;
4) 根據場景編寫程式、編寫指令碼、修改應用系統等;
5) 執行效能測試:建立測試環境、執行測試案例,記錄測試時的系統的各個可能的引數;
6) 分析測試結果:根據應用系統表現和測試時的系統記錄,分析發生的問題和測試結果;
7) 優化效能:提高系統的效能,使系統在測試時有更好的表現;
8) 效能迴歸測試:驗證系統的優化以及對相關功能模組的影響;
9) 測試報告:對測試進行總結,記錄已改進的問題及相關改進的修改,制定未解決問題的對策,提出系統執行、維護和改進建議。
確定清晰的效能目標,並按優先順序排列:
利用科學的測試工具對應用程式進行測試,並記錄測試結果。
把分散式系統拆分成元件:Web層、業務層、整合層、以及網路傳輸時間,分別進行調優。
有系統的科學調優
遵循一定的程式:測試效能→找出瓶頸→假設造成瓶頸的因素→測試假設是否成立→修改應用→再次測試效能。
確定影響效能的因素:CPU、Memory還是IO。
找出主要的瓶頸,首先解決最容易的,再重複測試。
一次修改一個瓶頸,不要對不需要的地方進行調優。
提高CPU效能:更快的程式碼、SQL,更好的演算法,減少短期生存的物件。
提高記憶體效能:減少或減小長期生存的物件。
提高IO效能:重新設計應用,減少IO的互動。
優化完成之後,進行QA測試。
在程式碼中記錄優化的地方,並對舊程式碼進行註釋。
網路出現wait_time問題 解決辦法 網路調參:設定/proc/sys/net/ipv4/tcp_tw_recycle為1,加快TIME_WAIT狀態回收