疫情期间,千万级系统宕机N次,老板撂下狠话:没法把性提升10倍,全员解雇!...
性能調(diào)優(yōu)整體思路
作為一名團(tuán)隊技術(shù)核心,如何讓系統(tǒng)跑得通、跑得穩(wěn)、跑得快是必然會面對的場景。性能分析是一個大課題,不同的架構(gòu)、不同的應(yīng)用場景、不同的程序語言分析的方法若有差異,抽象一下大致分為兩類:
自底向上:通過監(jiān)控硬件及操作系統(tǒng)的指標(biāo)(CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等硬件資源的性能指標(biāo))來分析性能問題(配置、程序等問題)。因為用戶請求最終是由計算機(jī)硬件設(shè)備來完成的,做事的是CPU。
自頂向下:通過生成負(fù)載來觀察被測試的系統(tǒng)性能,比如響應(yīng)時間、吞吐量;然后從請求的起點(diǎn)由外及里一層一層的分析,從而找到性能問題所在。
不管是自上而下還是自下而上,關(guān)鍵點(diǎn)就是生成負(fù)載、監(jiān)控性能指標(biāo)。好一點(diǎn)的方式是先用自頂向下的方式解決掉明顯的性能問題,再結(jié)合自底向上的方式分析更深層次的問題。
性能分析過程
步驟名稱  | 說明  | 
檢查RT  | 模擬用戶發(fā)起負(fù)載后,采用的自頂向下的方式首先分析RT(響應(yīng)時間)  | 
檢查TPS  | TPS大時RT小,說明性能良好  | 
檢查負(fù)載機(jī)資源  | 檢查CPU使用率,CPU負(fù)載(Load Average)確認(rèn)是用戶CPU占用高還是系統(tǒng)CPU占用高  | 
判斷負(fù)載機(jī)是否有性能問題  | 排除負(fù)載機(jī)的性能問題,確保測試結(jié)果可參考  | 
檢查Web服務(wù)器的資源消耗  | 1、檢查CPU使用率,確認(rèn)用戶CPU與系統(tǒng)CPU占用情況  | 
確認(rèn)是否Web服務(wù)器瓶頸  | 標(biāo)判斷是否是Web服務(wù)器硬件性能瓶頸  | 
檢查中間件配置  | 確認(rèn)是否是此配置問題  | 
檢查APP服務(wù)器資源消耗  | 關(guān)注CPU、內(nèi)存、磁盤、IO,判斷是否是App服務(wù)器硬件性能瓶頸  | 
數(shù)據(jù)庫服務(wù)器資源消耗分析  | 1、CPU消耗,CPU負(fù)載  | 
是否是DB性能問題  | 由監(jiān)控結(jié)果來判斷是否是DB性能問題  | 
是否SQL問題  | 1、定位最不合理的SQL占比索引是否正常引用  | 
其他  | 比如網(wǎng)絡(luò)阻塞、磁盤IO瓶頸、熱點(diǎn)等  | 
?.NET性能調(diào)優(yōu)四天集訓(xùn)
3月11日~14日,架構(gòu)師Zilor老師將帶領(lǐng)大家開啟.NET性能調(diào)優(yōu)4天突擊營,Zilor老師擁有12年軟件開發(fā)經(jīng)驗,7年大型互聯(lián)網(wǎng)架構(gòu)經(jīng)驗,此次,他將會為大家復(fù)盤.NET性能調(diào)優(yōu)的經(jīng)典場景,為大家提供高效、接地氣的解決方案,讓您迅速成為面試官或同事眼中的“老司機(jī)”。
課程原價599元,本號粉絲一律0元學(xué)(免費(fèi)名額僅499名),長按掃碼進(jìn)班級群。
第一天:如何使用VS進(jìn)行性能排查? ??算法對性能的影響
緩存對性能的作用
鎖的問題
響應(yīng)與吞吐
Performance Diagnostic Tools
內(nèi)存緩存與響應(yīng)緩存中間件
響應(yīng)壓縮
負(fù)載測試與壓力測試
SQL語句優(yōu)化
索引
分區(qū)、分表與分庫
讀寫分離
?延遲加載與貪婪加載
IQueryable與IEnumerable的區(qū)別
實(shí)體追蹤
查詢優(yōu)化
標(biāo)量函數(shù)
進(jìn)群享四大福利
福利1:送價值399元.NET Core視頻合集
福利2:送價值299元微服務(wù)視頻合集
福利3:送價值499元數(shù)據(jù)結(jié)構(gòu)算法視頻合集
福利4:贈送價值199元Redis視頻合集
掃碼獲取以上福利
僅限前199名
總結(jié)
以上是生活随笔為你收集整理的疫情期间,千万级系统宕机N次,老板撂下狠话:没法把性提升10倍,全员解雇!...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: .NET Core开发实战(第21课:中
 - 下一篇: 对比Java和.NET多线程编程