調(diào)優(yōu)方向和思路

最近在極客時間學(xué)習(xí)性能調(diào)優(yōu)的東西,寫個文章,做個筆記,逼自己做一些驗證,也算學(xué)習(xí)有個輸出。

一、計算機的哪些資源可能成為系統(tǒng)瓶頸

  1. CPU

    1. 代碼遞歸導(dǎo)致的無限循環(huán);
    2. 正則表達(dá)式引起的回溯;
    3. JVM 頻繁的 FULL GC;
    4. 以及多線程編程造成的大量上下文切換。
  2. 內(nèi)存

    1. 內(nèi)存溢出
    2. 內(nèi)存泄漏
  3. 磁盤IO

  4. 網(wǎng)絡(luò)

  5. 代碼異常

    1. 構(gòu)建異常棧為什么消耗系統(tǒng)性能?
  6. 數(shù)據(jù)庫

  7. 鎖競爭
    二、測試-分析-調(diào)優(yōu)

  8. 測試:

    1. 微基準(zhǔn)性能測試:對某個接口,某個方法。
    2. 宏基準(zhǔn)性能測試:考慮測試環(huán)境,測試場景和測試目標(biāo)。
    3. 注意問題:熱身問題(JAVA代碼的)、結(jié)果不穩(wěn)定(繪個平均曲線圖)、多JVM情況(線上多個tomcat的情況)。
  9. 分析:

    1. rt、tps;
    2. cpu、內(nèi)存、網(wǎng)絡(luò)IO
    3. 日志,jvm的gc頻率、堆內(nèi)存分配情況
    4. 代碼問題,數(shù)據(jù)庫等,各個線程池配置等。
  10. 調(diào)優(yōu):

    1. 優(yōu)化代碼
    2. 優(yōu)化設(shè)計
    3. 優(yōu)化算法
    4. 時間換空間
    5. 空間換時間
    6. 參數(shù)調(diào)優(yōu),jvm參數(shù),線程池參數(shù)
  11. 兜底策略

    1. 限流
    2. 橫向擴容
    3. 提前擴容
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容