0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

當系統(tǒng)鬧脾氣:用「因果推斷」哄穩(wěn)技術的心

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-08-14 10:42 ? 次閱讀

背景

系統(tǒng)穩(wěn)定性問題往往涉及復雜的因果關系。例如,一個系統(tǒng)的崩潰可能由多個因素引起,包括硬件故障、軟件bug、業(yè)務配置、外部攻擊或其他操作不當?shù)?。理解這些因素之間的因果關系對于系統(tǒng)穩(wěn)定性建設至關重要。

?

舉個例子:服務雪崩 A服務調(diào)用B服務之間發(fā)生了雪崩效應,原本B本身有點小問題,而A由于內(nèi)置的各種容錯和重試機制,反而加劇了B的服務負載,導致其出現(xiàn)更多的失敗。這些失敗觸發(fā)了A的無限重試,使得情況進一步惡化,最終引發(fā)了雪崩。在這一過程中,究竟是A的重試導致的B的過載,還是B的原有問題引發(fā)了A的重試,形成了一個因果循環(huán)。這里看誰是因誰是果呢? 在這種情況下,我們可以認為A和B之間發(fā)生的是一種相互作用,導致了一個負反饋循環(huán),最終引發(fā)了雪崩效應。具體來說,A和B之間的因果關系可以這樣理解: B的小問題是初始因:B服務的小問題是觸發(fā)事件,它導致了A服務的一些請求失敗。 A的容錯和重試機制是中間因:通常,容錯和重試是為了提高系統(tǒng)的穩(wěn)定性。然而,在這種情況下,A服務的容錯機制和重試策略反而放大了問題,因為它們沒有正確地識別到B服務已經(jīng)過載的情況。 B的服務過載是直接果:A服務無限重試導致B服務的負載急劇增加,這是問題惡化的直接結(jié)果。 雪崩效應是終極果:由于A的過度重試和B的服務過載,整個系統(tǒng)最終經(jīng)歷了雪崩效應,這是整個事件鏈的最終結(jié)果。 在這個場景中,我們可以說B服務的小問題是初始的“因”,而A服務的無限重試是一個關鍵的“因”,它放大了B服務的問題,并導致了最終的“果”——雪崩效應。 要解決這個問題,我們需要在因果鏈的不同環(huán)節(jié)進行干預: 在B端:提高服務的容錯能力,確保小問題不會導致服務響應變慢或失敗。 在A端:實施智能的重試策略,比如指數(shù)退避,或者在檢測到下游服務B過載時,停止重試。 監(jiān)控和警報:強化監(jiān)控系統(tǒng),確保在發(fā)生過載前能夠及時發(fā)現(xiàn)問題并觸發(fā)警報。 流量控制:在系統(tǒng)中實施流量控制和熔斷機制,以避免服務的過載。 通過這樣的干預,我們可以打破這種負反饋循環(huán),避免類似的雪崩效應發(fā)生。

一:因果推斷簡介

因果關系學習皮毛中~~~~~~

1)因果推斷的基本概念

因果關系,又稱為因果性,簡稱因果,是一個事件(即“因”)和第二個事件(即“果”)之間的作用關系,其中后一事件被認為是前一事件的結(jié)果。一般來說,一個事件是很多原因綜合產(chǎn)生的結(jié)果,而且原因都發(fā)生在較早時間點,而該事件又可以成為其他事件的原因。

統(tǒng)計相關性是指兩個或多個變量之間的關聯(lián)程度。如果兩個變量通常一起變化(無論是同向還是反向變化),它們就是相關的。然而,相關性并不意味著因果關系。例如,冰淇淋銷量的增加與溺水事件的增加可能相關,但這并不意味著冰淇淋銷量的增加導致了溺水事件的增加。

2)因果推斷方法-潛在結(jié)果框架

潛在結(jié)果框架是因果推斷中的一個核心概念,它基于對“如果情況不同,會發(fā)生什么”的假設性問題的考慮。在這個框架下,每個個體都有一系列的潛在結(jié)果,這些結(jié)果對應于可能的不同干預或處理。對于任何個體,我們只能觀察到其中一個潛在結(jié)果——即在實際發(fā)生的干預下觀察到的結(jié)果。潛在結(jié)果框架的關鍵是比較同一個個體在實際干預下的觀察結(jié)果和在假設的其他情況下的未觀察(潛在的)結(jié)果。

潛在結(jié)果框架的關鍵組成部分

?處理變量:一個二元變量,通常用 ( T ) 表示,其中 ( T=1 ) 表示個體接受了干預,( T=0 ) 表示個體沒有接受干預。

?潛在結(jié)果:對于每個個體,都有兩個潛在結(jié)果:( Y(1) ) 是個體在 ( T=1 ) 時的潛在結(jié)果,( Y(0) ) 是個體在 ( T=0 ) 時的潛在結(jié)果。

?因果效應:對于個體 ( i ),其因果效應定義為 ( Y_i(1) - Y_i(0) ),即個體在接受干預與未接受干預兩種情況下潛在結(jié)果的差異。

因果推斷的挑戰(zhàn)

?基本問題:我們無法同時觀察到同一個個體在接受和未接受干預下的兩種潛在結(jié)果,因此無法直接計算個體的因果效應。

?解決方法:通過對比實驗組和對照組來估計平均因果效應(ATE),或者使用其他統(tǒng)計方法來估計個體層面或群體層面的因果效應。

二:因果推斷在穩(wěn)定性分析中的應用

1)系統(tǒng)穩(wěn)定性問題的復雜性

多變量交互:不同的系統(tǒng)組件和操作可能交織在一起,使得問題難以隔離。例如,數(shù)據(jù)庫延遲可能與緩存策略不當相互作用,導致性能瓶頸。

動態(tài)環(huán)境:應用程序運行在不斷變化的環(huán)境中,負載波動、配置更改、依賴服務的可用性等都可能影響穩(wěn)定性。這意味著一個問題可能只在特定的環(huán)境條件下出現(xiàn),而在其他情況下無法觀察到。

非確定性行為:并發(fā)和網(wǎng)絡通信等因素引入的非確定性使問題難以復現(xiàn)和分析。例如,一個由于競爭條件導致的偶發(fā)性錯誤可能只在特定的線程調(diào)度順序下發(fā)生。

資源限制和泄漏:內(nèi)存泄漏、文件描述符耗盡、線程死鎖等資源管理問題可能隨時間積累,最終導致應用程序崩潰或性能下降。

代碼和架構(gòu)問題:應用程序的代碼質(zhì)量和架構(gòu)設計也會影響其穩(wěn)定性。例如,沒有遵循設計原則和模式可能導致系統(tǒng)脆弱,難以適應變化。

用戶行為和數(shù)據(jù)驅(qū)動的問題:用戶的特定行為或特定的數(shù)據(jù)輸入可能觸發(fā)隱藏的缺陷,這些問題在標準測試中可能沒有被發(fā)現(xiàn)。

監(jiān)控和日志不足:如果監(jiān)控系統(tǒng)不能提供足夠的可見性,或者日志不夠詳細,那么診斷問題可能會變得非常困難。

2)因果推動與代碼架構(gòu)梳理

"因果推斷"是一種強大的問題解決框架,它可以幫助開發(fā)者理解和解決技術問題,尤其是在系統(tǒng)穩(wěn)定性和錯誤排查方面。以下是因果推斷與技術代碼梳理之間的幾個關聯(lián)點:

1.問題診斷

?因果推斷:用于識別和分析導致軟件缺陷或性能問題的根本原因。

?代碼鏈路梳理:提供一個清晰的視圖,展示代碼中的各個組件是如何相互關聯(lián)和交互的。

2.錯誤和性能分析

?因果推斷:幫助開發(fā)者理解特定的代碼變更或外部因素是如何影響系統(tǒng)性能的。

?代碼鏈路梳理:使開發(fā)者能夠追蹤性能瓶頸可能存在的路徑,從而更準確地定位問題所在。

3.代碼維護和優(yōu)化

?因果推斷:在進行代碼重構(gòu)或優(yōu)化時,預測代碼變更可能帶來的影響,以及這些影響如何傳播到整個系統(tǒng)。

?代碼鏈路梳理:為重構(gòu)提供了必要的信息,明確了哪些部分的代碼需要更新,以及這些更新如何與系統(tǒng)的其他部分相互作用。

4.風險管理

?因果推斷:在引入新功能或進行大規(guī)模更新時,評估可能出現(xiàn)的風險以及這些風險的潛在后果。

?代碼鏈路梳理:確保開發(fā)者了解新變更將影響哪些代碼路徑,以便進行適當?shù)臏y試和風險緩解。

5.測試策略

?因果推斷:分析測試失敗的原因,確定哪些代碼或數(shù)據(jù)可能導致了問題。

?代碼鏈路梳理:幫助制定有效的測試計劃,確保關鍵路徑得到充分的測試覆蓋。

6.故障恢復

?因果推斷:在系統(tǒng)發(fā)生故障時,通過邏輯分析追溯到引發(fā)問題的初始事件。

?代碼鏈路梳理:指導故障恢復過程,通過理解代碼間的依賴關系來確定修復策略。

案例:API代碼鏈路梳理,關鍵環(huán)節(jié)12345對應的「因」和最終的67「果」。

?

簡而言之,因果推斷為開發(fā)者提供了一種分析和解決軟件問題的思維工具,而代碼鏈路梳理則提供了必要的結(jié)構(gòu)信息和上下文,使得因果關系能夠在代碼的具體實現(xiàn)中被識別和理解。兩者相輔相成,共同支持軟件的穩(wěn)定性和可維護性。

3)案例:RPC服務超時時間和重試次數(shù)最佳設置

背景

我們想要測試RPC通信調(diào)整超時時間和重試次數(shù)是否能提高整體的服務穩(wěn)定性和TP99性能。

實驗設計

1.處理變量(Treatment):不同的超時時間和重試次數(shù)配置。例如,我們可以設置兩個處理變量,( T_{timeout} ) 代表超時時間,( T_{retries} ) 代表重試次數(shù)。

2.潛在結(jié)果(Potential Outcomes):每個服務在不同超時時間和重試次數(shù)配置下的穩(wěn)定性指標,如成功響應率、TP99響應時間、系統(tǒng)吞吐量等。

3.因果效應(Causal Effect):對于每個服務實例 ( i ),其因果效應可以定義為在特定超時和重試配置下的穩(wěn)定性指標與默認配置下穩(wěn)定性指標的差異。

4.因果推斷的挑戰(zhàn):不同的服務可能對超時和重試的敏感度不同,而且服務間可能存在依賴關系,這使得直接比較不同配置的影響變得復雜。

5.解決方法:我們可以設計一個隨機對照試驗,隨機選擇服務實例并為它們分配不同的超時時間和重試次數(shù)配置。為了控制混雜因素,我們可以在開始實驗前對服務進行分層,確保每一層中的服務都有不同配置的代表。

復雜性增加

?服務分類:根據(jù)服務的重要性和穩(wěn)定性需求,將服務分為不同的類別,并為每個類別設計不同的超時和重試策略。

?流量模式:流量可能在一天中的不同時間有顯著變化,這可能需要動態(tài)調(diào)整超時和重試設置。

?依賴服務的狀態(tài):如果一個服務依賴于另一個服務,那么依賴服務的超時和重試設置可能需要根據(jù)被依賴服務的狀態(tài)進行調(diào)整。

數(shù)據(jù)分析

在實驗運行一段時間后,我們會收集相關的指標數(shù)據(jù),并使用統(tǒng)計方法來分析不同配置對服務穩(wěn)定性的影響。比如,來確定不同超時和重試配置對成功響應率的影響是否顯著。

結(jié)果應用

如果我們發(fā)現(xiàn)某些配置顯著提高了服務的穩(wěn)定性和性能,我們可以將這些配置作為新的標準應用到生產(chǎn)環(huán)境中。此外,我們還可以根據(jù)服務的分類和流量模式,設計一個動態(tài)調(diào)整策略,以實時優(yōu)化超時和重試設置。

?

三:團隊視角下的因果推斷

1)團隊與因果推斷

在團隊中,因果推斷是一種重要的工具,它幫助工程師理解和解決復雜系統(tǒng)中的問題,以及預防未來的故障。

2)事故管理和因果推斷

在事故管理中,因果推斷幫助團隊確定故障的根本原因,并評估不同因素對故障的貢獻度。這種方法可以減少推測和偏見,提高故障分析的準確性。

3)因果推斷在團隊實踐中的整合

1.事故后分析的改進:使用因果推斷來分析故障,以便更全面地理解故障發(fā)生的條件和原因。

2.預防措施和風險評估:利用因果模型預測潛在的風險點,制定有效的預防措施。

3.改進監(jiān)控和警報系統(tǒng):基于因果關系,設計更為精準的監(jiān)控指標和警報機制。

4)故障預防與因果推斷

1.容量規(guī)劃:應用因果推斷分析歷史數(shù)據(jù),預測系統(tǒng)負載,從而進行有效的容量規(guī)劃。

2.壓力測試和因果關系:使用壓力測試結(jié)果更新因果模型,以更好地理解系統(tǒng)在高負載下的行為。

3.預測性維護:利用因果關系模型識別可能導致未來故障的信號,進行預測性維護。

5)案例:因果推斷在團隊實踐中的應用

故障場景:服務突然遭遇性能下降,用戶的請求延遲增加,部分請求超時。

1.數(shù)據(jù)收集:團隊收集了相關的監(jiān)控數(shù)據(jù)、日志文件和系統(tǒng)指標。

2.初步分析:初步分析提示可能是數(shù)據(jù)庫查詢性能下降導致的問題。

3.因果推斷:團隊使用因果推斷方法分析了數(shù)據(jù)庫性能問題與最近的代碼變更、配置更新、流量增長之間的關系。

4.驗證假設:通過回滾最近的變更和調(diào)整數(shù)據(jù)庫配置,團隊驗證了因果關系。

5.改進監(jiān)控:基于發(fā)現(xiàn)的因果關系,團隊增加了對關鍵數(shù)據(jù)庫性能指標的監(jiān)控。

6.預防措施:團隊還引入了新的代碼審查和測試流程,以預防未來類似的性能問題。

通過這個過程,團隊能夠不僅解決了即時的故障,還加強了系統(tǒng)的長期穩(wěn)定性和可靠性。

?

四、因果推斷和5Whys

1)5 Whys

5Why分析法,也叫做“5問法”,就是對于一個問題點,連續(xù)問5個為什么,以追求其真正原因,這種方法最初由豐田的創(chuàng)始人豐田佐吉提出的。5Why分析法簡單易行,一句話描述就是:沿著“為什么?...為什么?...”的因果路徑,逐一提問,以此來挖掘出問題的真正原因。

注意事項:

關鍵不在于具體的數(shù)字“五”,而是要不斷詢問,直到達到并消除根本原因。

5Why連續(xù)追問,每次追問得出的原因一定是要和上一級產(chǎn)生直接、唯一、可控、或充要或充分條件或最高影響的答案,否則就不能繼續(xù)下去,也追問不到問題的本質(zhì)了。

wKgaoma8GY-APgb8AAtsy5waVEc070.png

?

2)關系

盡管因果推斷和“5個為什么”在方法論上有所不同,但它們的目標相似:都是為了理解事件之間的因果關系。兩者都可以用于識別問題的原因,并幫助制定解決方案。

?因果推斷提供了一種科學和定量的方法來確定因果關系,適合于需要精確測量和驗證假設的場景。

?5個為什么提供了一種更快速、更基于直覺的方法來探索和識別可能的因果鏈,適合于需要快速診斷和解決問題的場景。

在實際應用中,兩者可以結(jié)合使用。例如,可以先通過“5個為什么”快速識別潛在的因果鏈,然后通過因果推斷的方法來驗證這些因果關系是否成立。這種結(jié)合使用可以使問題解決過程既高效又有深度。

五、結(jié)論

因果推斷在穩(wěn)定性保障中的作用和潛力是顯著的。通過有效地應用因果推斷,能夠:

1.提高故障診斷的準確性:準確地識別系統(tǒng)性能問題的根本原因,而不僅僅是表面現(xiàn)象。

2.縮短故障恢復時間:快速定位問題源頭,減少系統(tǒng)故障的持續(xù)時間,提高服務的可用性。

3.優(yōu)化資源分配:精確地識別問題,避免資源浪費在不相關的調(diào)查和修復上。

4.預防未來故障:通過理解問題的因果關系,可以更好地預防未來的系統(tǒng)故障。

5.提升決策質(zhì)量:為管理層提供基于數(shù)據(jù)的決策支持,優(yōu)化技術和業(yè)務流程。

因果推斷的潛力還未完全挖掘,未來的研究和實踐改進有以下可能性:

1.數(shù)據(jù)治理:建立更嚴格的數(shù)據(jù)治理流程,確保數(shù)據(jù)質(zhì)量,為因果推斷提供堅實基礎。

2.多元數(shù)據(jù)源整合:整合更多類型的數(shù)據(jù)源,提高分析的全面性和深度。

3.自動化流程:自動化因果推斷流程,減輕人工負擔,提高響應速度。

因果關系學習皮毛中~~~~~~,如文中知識有誤,歡迎指正,評論、一起探討,謝謝!

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦

    一種基于因果路徑的層次圖卷積注意力網(wǎng)絡

    機電系統(tǒng)中的故障檢測對其可維護性和安全性至關重要。然而,系統(tǒng)監(jiān)測變量往往具有復雜的聯(lián)系,很難表征它們的關系并提取有效的特征。本文開發(fā)了一種基于因果路徑的層次圖卷積注意力網(wǎng)絡(HGCAN),以提高復雜
    的頭像 發(fā)表于 11-12 09:52 ?76次閱讀
    一種基于<b class='flag-5'>因果</b>路徑的層次圖卷積注意力網(wǎng)絡

    鏡頭同軸和非同軸差異化

    鏡頭是高精度機器視覺測量系統(tǒng)中的關鍵組件,擁有高分辨率、低失真度等特點,可以糾正傳統(tǒng)工業(yè)鏡頭視差,減少甚至消除物體位移導致的放大倍率變化、圖像畸變、透視誤差、較差的圖像分辨率等問題。遠鏡頭根據(jù)光源
    的頭像 發(fā)表于 11-04 11:19 ?107次閱讀
    遠<b class='flag-5'>心</b>鏡頭同軸和非同軸差異化

    普通電機能變頻電機

    普通電動機是按照恒頻恒壓的使用條件設計的,其內(nèi)部結(jié)構(gòu)和材料選擇都是基于這一前提進行的。因此,普通電動機與變頻器結(jié)合使用時,它不可能完全適應變頻器調(diào)速的要求,普通電機不能變頻電機。變頻器通過改變
    的頭像 發(fā)表于 08-27 16:52 ?400次閱讀

    穩(wěn)拌合站監(jiān)測管理系統(tǒng)在水穩(wěn)層施工中的價值應用

    穩(wěn)拌合站監(jiān)測管理系統(tǒng)主要應用在路面施工水穩(wěn)層水穩(wěn)拌合站,采用無線傳輸模式將拌合機生產(chǎn)過程中的生產(chǎn)數(shù)據(jù)進行采集,將采集數(shù)據(jù)通過采集客戶端發(fā)送至遠端服務器進行存儲,然后通過
    的頭像 發(fā)表于 08-16 08:23 ?189次閱讀
    水<b class='flag-5'>穩(wěn)</b>拌合站監(jiān)測管理<b class='flag-5'>系統(tǒng)</b>在水<b class='flag-5'>穩(wěn)</b>層施工中的價值應用

    怎么THS4031設計一個輸出穩(wěn)幅電路?

    請問有一個±5V,100Khz的sin波形,sin波可能會收到電源的影響,sin幅值有一定幾率會輕微改變。那么怎么THS4031設計一個輸出穩(wěn)幅電路,放大器的放大倍數(shù)能夠自適應改變,這樣就可以讓輸出一直穩(wěn)定在±5V
    發(fā)表于 07-30 07:04

    精密空調(diào)—精密空調(diào)“鬧脾氣”?來看看怎么定位問題!#精密空調(diào)

    精密空調(diào)
    北京匯智天源
    發(fā)布于 :2024年07月23日 19:10:37

    工業(yè)鏡頭中常說的畸變、遠鏡頭及遠

    淺談工業(yè)鏡頭中常說的畸變、遠鏡頭及遠
    的頭像 發(fā)表于 05-22 11:00 ?1701次閱讀
    工業(yè)鏡頭中常說的畸變、遠<b class='flag-5'>心</b>鏡頭及遠<b class='flag-5'>心</b>度

    示波器可以

    示波器通常不能當作萬表來使用。盡管示波器和萬表都是電子測量工具,但它們在功能和用途上存在顯著的區(qū)別。
    的頭像 發(fā)表于 05-08 17:06 ?757次閱讀

    機房精密空調(diào)“鬧脾氣”?找對原因,快速解決問題!# 精密空調(diào)

    精密空調(diào)
    北京匯智天源
    發(fā)布于 :2024年04月05日 21:59:11

    穩(wěn)拌合站監(jiān)測系統(tǒng)在公路建設應用,聽小編來說

    一、背景介紹 ? ? ? 水穩(wěn)拌合站生產(chǎn)監(jiān)管系統(tǒng)是專為鐵路、公路建設方、施工企業(yè)、監(jiān)理企業(yè)研發(fā)的混凝土拌合站生產(chǎn)、運輸、施工監(jiān)管系統(tǒng),在中鐵、中建、中交等大型施工企業(yè)都有成熟應用。適用于水穩(wěn)
    的頭像 發(fā)表于 01-31 17:23 ?458次閱讀
    水<b class='flag-5'>穩(wěn)</b>拌合站監(jiān)測<b class='flag-5'>系統(tǒng)</b>在公路建設應用,聽小編來說

    LT1935輸入電壓達到11V時,輸出電壓就穩(wěn)不住怎么解決?

    使用LT1935電路,輸入5V時,能正常輸出12V。 但是輸入電壓達到11V時,輸出電壓就穩(wěn)不住,沒有升壓,輸出比輸入電壓還低。 有辦法解決嗎?
    發(fā)表于 01-05 06:03

    ChatGPT是一個好的因果推理器嗎?

    因果推理能力對于許多自然語言處理(NLP)應用至關重要。最近的因果推理系統(tǒng)主要基于經(jīng)過微調(diào)的預訓練語言模型(PLMs),如BERT [1] 和RoBERTa [2]。
    的頭像 發(fā)表于 01-03 09:55 ?798次閱讀
    ChatGPT是一個好的<b class='flag-5'>因果</b>推理器嗎?

    GPT推斷中的批處理(Batching)效應簡析

    機器學習模型依賴于批處理(Batching)來提高推斷吞吐量,尤其是對于 ResNet 和 DenseNet 等較小的計算機視覺模型。
    的頭像 發(fā)表于 12-18 15:52 ?660次閱讀
    GPT<b class='flag-5'>推斷</b>中的批處理(Batching)效應簡析

    直流調(diào)速器使用編碼反饋時電樞電壓不穩(wěn),而使用電壓反饋時電樞電壓卻很穩(wěn)是為什么?

    后換了一臺新的590C直流調(diào)速器,電機及線路均的原系統(tǒng)的. 換上后,采用電樞電壓反饋,590診斷出的編碼器的轉(zhuǎn)速很穩(wěn)(201~203rpm),高精度的數(shù)字萬
    發(fā)表于 11-22 07:47

    PDH穩(wěn)系統(tǒng)可以這么簡單的實現(xiàn)

    本實驗基于Liquid 公司moku:Pro和Stable laser公司的超穩(wěn)系統(tǒng),實現(xiàn)了對普通1064nm激光器的PDH穩(wěn)頻,獲得了正確的調(diào)制邊帶和誤差信號,并進一步對激光器進行鎖頻和PID鎖定優(yōu)化輸出。
    的頭像 發(fā)表于 11-15 13:59 ?553次閱讀
    PDH<b class='flag-5'>穩(wěn)</b>頻<b class='flag-5'>系統(tǒng)</b>可以這么簡單的實現(xiàn)