1979 年 3 月,美國賓夕法尼亞州三里島核電站發生洩漏,20 英里範圍內的居民全部撤離,從此以後美國放棄了核電站建設。
事故發生時,反應堆容器發生壓力積聚,在這種情況下,正常的應對方案是開啟乙個安全閥門,降低壓力到安全水平。這個安全閥門的設計是通過加電壓到電磁制動器上使其開啟,開啟後會有乙個監控指示燈亮起,降壓後重新關上閥門,指示燈就會熄滅。
操作人員在壓力聚集後按正常處理流程進行了閥門開啟降壓操作,壓力下來後,操作人員移除電壓,閥門應該關閉,但實際上閥門被卡在了開啟位置,而此時的監控指示燈卻熄滅了,操作人員誤以為閥門已正常關閉,實際卻並沒有關上。
之後,反應堆容器中的冷卻劑一直洩漏了近 2 小時,直到反應堆頂部從冷卻液中暴露出來,燃料棒和芯塊開始融毀,在隨後的倉皇失措中,輪班人員一直相信控制面板上的指示燈,認為人工減壓閥處於正常的關閉狀態。
就是這樣乙個小小的報警指示燈故障,導致了這次核事故。對於像核反應堆閥門這樣的關鍵系統部件,其工作狀態需要更準確的監控報警,甚至多重監控報警進行交叉驗證。比如:除了電路感測的指示燈報警,還應該有更直接的開閉位置感測報警。
三里島核事故帶來的啟示是:對於系統中的核心關鍵節點,需要絕對直接而且準確的監控報警,報警本身就需要高可用,而且還能多重交叉驗證。
20 世紀 50 年代,英國哈維蘭公司開發出了第乙個商用噴氣式飛機,但後來該機型在同一年連續兩次出現墜毀。
後經事故調查研究找到了原因:噴氣式飛機因為比其他機型飛行高度更高,在飛機起飛和著陸時為使乘客不至於感到不適,不可避免要進行機內空氣加壓和減壓迴圈;而在噴氣式飛機出現之前的機型因為飛行高度低,不需要做加壓和減壓迴圈處理;當時的飛機設計人員沒人想到這會有什麼影響。
但反覆的空氣加壓和減壓迴圈,導致飛機頂部天窗用以發射無線電的鉚釘處金屬疲勞,產生應力老化裂紋,多次加減壓迴圈後,裂紋擴大變成了裂縫,最終在某次飛行過程中導致了空中解體。在飛機實驗室的壓力測試環境下並沒有真實的模仿實際的加壓和減壓週期,工程師對自己設計的可靠性陷入了一種錯誤的認識之中。
更可怕的是,在第一次墜機事故後,並沒有找到這個真正的原因,以為是一次意外偶然事件。在該機型停飛了兩個月後,由英國首相邱吉爾和該公司總裁聯合做出保證不會再出事,數週後該公司的另一架由羅馬飛往開羅的班機又墜毀於地中海後,工程師們才找到真正的原因。
比如,在做 im 系統時,有一種場景是如果出現集中網路閃斷,那麼所有 im 客戶端的長連線都會一起斷開,並集中重連。這時負載均衡極有可能會讓突發的集中重連流量全部打到後端第乙個**詢到的機器上,單機就會被突發的集中流量擊垮。而如果是逐步提公升的流量,則會均勻的被均衡到後端所有的分布式伺服器上。
設計時,盡力考慮所有可能的使用場景變化,而哈維蘭的教訓實在太深刻與悲痛了。
2006 年,波士頓的乙個隧道內,有 4 塊天花板,每塊重 3 噸,突然脫落掉了下來,砸中了行駛中的小車。
那麼問題來了,天花板為什麼會突然坍塌,而之前卻毫無徵兆?它們是如何固定的?天花板是由金屬支架支撐,支架使用螺栓插入鑽孔固定在隧道頂部,而螺栓則使用環氧樹脂膠填充螺栓和孔腔之間的間隙。
環氧樹脂是一種聚合物,其硬度會隨時間和溫度的變化而變化,如果突然施加乙個負載,環氧樹脂能在短時間內很好的保持原來的形狀。但如果其持續承受負載(靜態負載),聚合物的分子可能會慢慢移動,造成環氧樹脂逐漸變形,這個過程就是 「蠕變」。
而隧道中使用的環氧樹脂具有很差的抗蠕變性,負責安裝的工程師忽略了這個事實,也可能是對此缺乏了解,因此造成了這次事故。
而程式系統中類似 「蠕變效應」 的問題有很多,比如:磁碟日誌,快取空間,記憶體**,資料儲存,索引週期。所有這些都可能因為足夠長時間的系統執行,造成 「蠕變」 積聚,直到撐不住引發事故。
系統中沒有所謂的抗 「蠕變」 元件,因此我們需要對這些可能發生 「蠕變」 的地方進行週期性的檢查,並及時處理。
以上就是我這次雙十一前讀到的一些關於現實世界更傳統的工程事故,以及帶給我的啟示。鐵達尼號號稱當時世界上最安全的船,在撞上冰山之後,回過頭來一看到處都是顯而易見的問題。**作家費奧多·陀思妥耶夫斯基曾說過一句名言:
當失敗時,似乎一切都顯得愚蠢。現實世界的工程事故會顯得更殘酷,不免感慨工程師真要有敬畏之心,能修復缺陷,解決問題固然不錯,但能提前去規避和發現會更好。
工程事故與現實世界
每年的雙十一都是電商行業程式設計師們的一次大考。今年的雙十一剛剛過去不久,在雙十一之前的那一周,我幾乎每天都會想乙個問題 如果系統會發生故障,那麼可能會在 雙十一前乙個月,是為數不多能暫緩業務需求,集中進行系統檢修的機會,在這期間會發現之前積累下來的各類隱患和小缺陷,並進行集中修復,然後上線壓測。雖...
工程事故與現實世界
每年的雙十一都是電商行業程式設計師們的一次大考。今年的雙十一剛剛過去不久,在雙十一之前的那一周,我幾乎每天都會想乙個問題 如果系統會發生故障,那麼可能會在 雙十一前乙個月,是為數不多能暫緩業務需求,集中進行系統檢修的機會,在這期間會發現之前積累下來的各類隱患和小缺陷,並進行集中修復,然後上線壓測。雖...
現實世界 虛擬世界 n倍的現實世界
虛擬空間的再定義 在計算機術語中有這樣乙個定義,虛擬空間即虛擬主存,它與ip位址密切相關。但是本人認為虛擬空間就是虛擬空間,它不同於虛擬主存。因為它的側重點在 空間 上。那麼什麼是虛擬空間。舉個簡單的例子,當你看一本 時,的紙張就是現實物 我們腦海裡的畫面就是虛擬空間的 實物 文字則是產生虛擬空間的...