關於調試,有一個真實的故事我要講一講

個人第一份工做是在微軟中國作技術支持。主要工做就是遠程幫助微軟的客戶解決微軟平臺上的研發問題,好比內存泄漏,崩潰和死鎖之類的。趕上難題咱們還會用工具直接鏈接到客戶的環境中調試。在極少數狀況下工程師也會到現場解決問題。html

當時有一個特別的職位叫作CPR,全稱是Critical Problem Resolver。只有極少數很是優秀的工程師纔夠得上這個稱號。任何別的工程師解決不了的問題均可以上報找更高級的工程師幫忙,這個鏈條的頂端就是CPR。服務器

在我職業生涯初期,有一位CPR給了我很是多的幫助和指點。即使十多年過去了,這段經歷仍舊是對我影響最深入的。當時學到的一些技巧,即使十多年後我展現給同事看的時候,仍是能夠震驚全場。而這位CPR也是有史以來微軟最年輕的一位。工具

今天要講的故事不是關於這位CPR的。而是流傳在江湖中另一個CPR的故事。測試

這要追溯到2000年左右。有一個傳統企業開創先河決定用微軟技術自主建設企業內部IT系統。當時IT系統但是隻有銀行,電信這樣的企業纔會投入的。並且一般都是採用IBM或者SUN的大型機中型機,系統也是UNIX系列好比Solaris。採用wintel系統自主搭建IT基礎設施在當時但是先河之舉。該客戶還額外和微軟簽定了諮詢顧問服務。調試

研發結束,上線前夕,這套新研發的服務在生產環境上測試時候老是莫名崩潰,並且毫無規律可循。當時技術支持遠程跟進了不少周,仍是束手無策。逝去的時間也逐漸消磨客戶的信心。眼看工程的截止日期已經不遠,微軟讓一個CPR到現場去幫助解決。htm

該工程師到了現場,日以繼夜地調試,排查,分析了一波又一波的dump文件,嘗試着各類方法。幾天之後,該工程師對客戶說,生產環境的硬件壞了,你找供貨商換一下就好。blog

客戶很是的震驚,而後發怒。認爲微軟找不到問題就把鍋踢到硬件上去。要知道當時硬件服務商可都是牛氣沖天的外資企業,不會沒有原因就換硬件的。更重要的是,服務器配件當時可不是made in China,都將是要進口空運的。等硬件運來,時間也過去了,若是問題沒解決那真是就沒有退路了。進程

客戶最終贊成換硬件試一試,但要求微軟答應一個條件:若是新硬件不解決問題,要求微軟對客戶前期的投入全額退款。內存

工程師給領導解釋了下情況,領導們商量了一下,徹底信任工程師的判斷,答應了客戶的條件。it

該服務在新的硬件上運行不少天后問題都沒有再發生。這就是這個故事的結局。

這個故事在個人內心種下了一顆種子。我當時就想,何時個人技能也可讓我在調試器中分辨出硬件問題,何時我才能足夠自信要求客戶由於程序的崩潰去更換硬件,若是還我作當時的領導,我有勇氣徹底支持工程師的判斷嗎。

十多年過去了,雖然我還在微軟,但早不作技術支持了。在Azure Compute組,咱們管理微軟全部的服務器,包括Bing的和Azure的。咱們寫的軟件服務運行在每一臺微軟服務器上,整個Azure和數據中心都是創建在其之上。

十年前作技術支持的時候,我會由於客戶的某一個程序崩潰而擔憂,但願服務進程永遠健康運行。今天客戶都遷移到雲上,我會由於雲宿主上的服務進程崩潰而擔憂。在過去的幾年裏,我也調試過不少次莫名的崩潰,我本身的代碼也差點致使極其嚴重的故障。我在dump裏面看到過疑似的內存故障或者磁盤故障,但我卻歷來沒有活生生的在調試器裏面見證過硬件的問題。那一顆種子還在那裏,直到上個週末,2017年的雙十一,我終於捉住了一個機會。 http://www.cnblogs.com/lixiong/p/7818247.html

相關文章
相關標籤/搜索