線上出現bug解決用例
墨菲定律
任何事情都沒有表面看起來那麼簡單
所有事情的發展都會比你預計的時間長
會出錯的事情總會出錯
如果擔心某個事情發生,那麼它更有可能發生
墨菲定律暗示我們,如果擔心某種情況會發生,那麼它更有可能發生,久而久之就一定會發生。這警示我們,在網際網路公司,對生成環境發生的任何怪異現象和問題都不要輕視,對其背後的原因一定要調查清楚。同樣,海恩法則也強調任何嚴重的事故背後都是很多次小問題的積累,當到一定量級後會導致質變,嚴重的問題就會浮出水面。
那麼,我們需要對線上服務產生任何現象,哪怕是小問題,都要刨根問底,對任何現象都要遵循下面問題
為什麼會發生 ?
發生了該怎麼應對 ?
怎麼恢復 ?
怎麼避免 ?
應急目標
在生成環境發生故障時快速恢復服務,避免或減少故障帶來的損失,避免或減少故障對客戶的影響
應急原則
應第一時間恢復系統,而不是徹底解決呢問題,快速止損
明顯資金損失時,要第時間升級,快速止損
指標要圍繞目標,快速啟動應急過程與止損方案
當前負責人不能短時間內解決問題,則必須進行升級處理
處理過程在不影響使用者體驗的前提下,保留現場
應急方法與流程
線上應急一般分為 6 個階段
發現問題
定位問題
解決問題
回顧問題
改進措施
過程中要記住,應急只有一個總體目標:儘快恢復,消除影響。不管處於哪個階段,首先想到的必須是恢復問題,恢復問題不一定能定位問題,也不一定有完美的解決方案,可能通過經驗或者開關等。但這可以達到快速恢復的目的,然後保留現場,以及定位問題,解決問題和覆盤
發現問題
通常我們通過系統層面、應用層面和中介軟體層面監控來發現問題
系統層面監控包括
系統的 CPU 使用率
Load average
Memory
I/O (網路與磁碟)
SWAP 使用情況
執行緒數
File Description 檔案描述符等
應用層面監控包括
介面的響應時間
QPS
呼叫頻次
介面成功率
介面波動率等
中介軟體層面監控包括資料庫、快取、訊息佇列。
對資料庫的負載、慢查詢、連線數等監控
對快取的連線數、佔用記憶體、吞吐量、響應時間等監控
訊息佇列的響應時間、吞吐量、負載、堆積情況等監控
定位問題
分析定位過程中先考慮系統最近發生的變化,需要考慮如下幾方面
故障系統最近是否上過線?
依賴的基礎平臺與資源是否升級過?
依賴的系統是否上過線?
運營是否在系統內做過運營變更?
網路是否有波動?
最近的業務量是否漲了?
運營方是否有促銷活動?
解決問題
解決問題要以定位問題為基礎,必須清晰定位問題產生的根本原因,在提出解決問題的有效方案,沒有明確原因之前,不用使用各種方法來嘗試修復問題,可能還沒有解決這個問題又引入了下個問題,想想剛剛提到的墨菲定律
回顧問題
解決問題後,需應急團隊與相關方回顧事故產生的原因、應急過程的合理性、提出整改措施,主要聚焦在以下幾個問題:
類似的問題還有哪些沒有發生?
做了哪些事情,事故就不會再發生?
做了哪些事情,及時發生故障,也不會產生影響?
改進措施
根據回顧問題提出的改進措施,以正式的專案管理方式進行統一管理,採用 SMART 原則來跟進
相關文章
- 線上出bug了?別怕,這麼定位!
- 解Bug之路-應用999線升高
- FIS3+mod.js開發方案線上上部署時出現無法找到檔案的bug的解決過程S3JS
- 大佬們,這種線上 bug 出現了,以後怎麼避免呢
- Mysql出現連線錯誤解決辦法MySql
- 移動App崩潰測試用例設計分享,快速找出bug解決麻煩!APP
- 專案上線之後,出現過線上問題嗎?怎麼排查和解決的?
- 線上適合一直開啟opcache嗎?會不會出現幽靈bugopcache
- 常見BUG解決
- vue專案前端匯出word檔案(bug解決)Vue前端
- mysql 原生 線上DDL 的bug .MySql
- 關於 Xmind 用例線上管理的探討
- 解決線上Oracle連線耗時過長的問題現象RPYBOracle
- 特定頁面出現 BUG
- 解決資料庫儲存富文字資訊可能會出現轉義等bug資料庫
- BUG頻出的大環境下,如何最大程度避免線上事故?
- 恢復備份例項時出現ORA-01659的解決方法UA
- 終於解決了這個線上偶現的panic問題
- Windows連線遠端桌面時出現黑屏的解決辦法Windows
- Mac SSH 連線出現 Host key verification failed. 錯誤解決MacAI
- 連線MySQL時出現1449與1045異常解決辦法MySql
- U盤連線電腦後出現卡頓的解決方法
- Oracle JDK7 bug 發現、分析與解決實戰OracleJDK
- 探索TiDB Lightning的原始碼來解決發現的bugTiDB原始碼
- Java swing JFrame用repaint出現閃爍的問題解決JavaAI
- 線上BUG:MySQL死鎖分析實戰MySql
- PHP+MySQL實現線上測試答題例項PHPMySql
- 用ASP實現線上壓縮與解壓縮功能程式碼
- 如何快速定位線上出現的問題?
- echarts折線圖使用dataZoom,切換資料時渲染異常,出現豎線bugEchartsOOM
- 被產品經理懟了,線上出Bug為啥你不知道
- 使用預設pypi源出現連線超時的解決辦法
- 解決 Jenkins 上 git 出現的 “ERROR: Error fetching remote repo 'origin'” 問題JenkinsGitErrorREM
- C語言基礎例項—3句解決數字出現頻率問題C語言
- [BUG反饋]OnetThink1.1.141212開發版 檔案上傳類出現多處BUG,已經修正
- 解Bug之路-記一次線上請求偶爾變慢的排查
- 線上MySQL讀寫分離,出現寫完讀不到問題如何解決MySql
- 用CMD執行時Java,出現亂碼的解決辦法Java