疫情期間,千萬級系統宕機N次,老闆撂下狠話:沒法把性提升10倍,全員解僱!...

性能調優整體思路

作爲一名團隊技術核心,如何讓系統跑得通、跑得穩、跑得快是必然會面對的場景。性能分析是一個大課題,不同的架構、不同的應用場景、不同的程序語言分析的方法若有差異,抽象一下大致分爲兩類:

  • 自底向上:通過監控硬件及操作系統的指標(CPU、內存、磁盤、網絡等硬件資源的性能指標)來分析性能問題(配置、程序等問題)。因爲用戶請求最終是由計算機硬件設備來完成的,做事的是CPU。

  • 自頂向下:通過生成負載來觀察被測試的系統性能,比如響應時間、吞吐量;然後從請求的起點由外及裏一層一層的分析,從而找到性能問題所在。

不管是自上而下還是自下而上,關鍵點就是生成負載、監控性能指標。好一點的方式是先用自頂向下的方式解決掉明顯的性能問題,再結合自底向上的方式分析更深層次的問題。

性能分析過程

步驟名稱

說明

檢查RT

模擬用戶發起負載後,採用的自頂向下的方式首先分析RT(響應時間)

檢查TPS

TPS大時RT小,說明性能良好

檢查負載機資源

檢查CPU使用率,CPU負載(Load Average)確認是用戶CPU佔用高還是系統CPU佔用高
 前提:確認測試腳本沒有性能問題,不會造成結果統計的不準確
 檢查內存使用情況,確認併發內存泄漏風險,不會造成結果統計的不準確

判斷負載機是否有性能問題

排除負載機的性能問題,確保測試結果可參考

檢查Web服務器的資源消耗

1、檢查CPU使用率,確認用戶CPU與系統CPU佔用情況
 2、檢查內存使用情況
 3、檢查磁盤使用情況
 4、檢查佔用的帶寬
 5、分析Web頁面響應的時間組成,確認是什麼請求影響了性能

確認是否Web服務器瓶頸

標判斷是否是Web服務器硬件性能瓶頸

檢查中間件配置

確認是否是此配置問題

檢查APP服務器資源消耗

關注CPU、內存、磁盤、IO,判斷是否是App服務器硬件性能瓶頸

數據庫服務器資源消耗分析

1、CPU消耗,CPU負載
 2、內存消耗
 3、IO繁忙程度
 4、數據庫監控

是否是DB性能問題

由監控結果來判斷是否是DB性能問題

是否SQL問題

1、定位最不合理的SQL佔比索引是否正常引用
 2、檢查共享SQL是否合理範圍
 3、檢查解析是否合理
 4、檢查數據ER結構是否合理
 5、檢查數據熱點問題
 6、檢查數據分佈是否合理

其他

比如網絡阻塞、磁盤IO瓶頸、熱點等












 .NET性能調優四天集訓

3月11日~14日,架構師Zilor老師將帶領大家開啓.NET性能調優4天突擊營,Zilor老師擁有12年軟件開發經驗,7年大型互聯網架構經驗,此次,他將會爲大家覆盤.NET性能調優的經典場景,爲大家提供高效、接地氣的解決方案,讓您迅速成爲面試官或同事眼中的“老司機”。

課程原價599元,本號粉絲一律0元學(免費名額僅499名),長按掃碼進班級羣。

第一天:如何使用VS進行性能排查    
  • 算法對性能的影響

  • 緩存對性能的作用

  • 鎖的問題

  • 響應與吞吐

  • Performance Diagnostic Tools

第二天:ASP.NET Core 該如何優化    
  • 內存緩存與響應緩存中間件

  • 響應壓縮

  • 負載測試與壓力測試

第三天:數據庫的優化該怎麼做    
  • SQL語句優化

  • 索引

  • 分區、分表與分庫

  • 讀寫分離

第四天:如何使EF Core更加高效    
  •  延遲加載與貪婪加載

  • IQueryable與IEnumerable的區別

  • 實體追蹤

  • 查詢優化

  • 標量函數

進羣享四大福利

福利1:送價值399元.NET Core視頻合集

福利2:送價值299元微服務視頻合集

福利3:送價值499元數據結構算法視頻合集

福利4:贈送價值199元Redis視頻合集

掃碼獲取以上福利

僅限前199名

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