乙個配置引發的血案
乙個配置引發的血案,記一次線上事故的覆盤。
一天晚上的業務高峰期,出現了超時(資料載入不出來的情況)。
聯想到前一天有發版的工作,第一功能上並沒有太大的調整,此次發版內容更多的是新增的功能,使用者使用量也較少,基本可以排除因功能導致的問題;第二是否中介軟體出現問題,因資料的互動,有80%是和redis互動,從慢日誌查詢中未發現有異常情況;第三隱約有人說過用於負載的服務,昨天發版關閉掉了一台。
通過netstat -an |grep 'established' |grep -i 'port' |wc -l,可檢視連線數的情況。
從上面的命令檢視到當台服務已經到了瓶頸,然後立即從配置中檢視,確實只有一台對外在執行著的。
處理方法:立即啟動另外乙個服務,修改配置後,驗證。業務已正常執行。
和昨晚參與發版的人員核對,昨晚關閉掉一台負載的原因。說是因為啟動兩台時,出現新加的功能,呼叫新的服務會出現報錯的情況。因未找到原因,和運維溝通後,最後決定只起一台服務。
聽完說明後,第乙個聯想到的就是配置的ip和埠是否正常? 一看配置,ip是本地ip,問題已定位。修改本地ip為網域名稱,功能正常。
此次事件,有多個環節可避免掉此事件。結果各個環節上的疏漏,導致了此次事件的發生。
一、上生產環境的ip配置,統一採用網域名稱的方式。這個是約定,因開發人員不清楚線上網域名稱的情況,未能執行好。
二、運維是部署線上環境的第一人,各服務執行在那台對應的機子上,是最為清楚的乙個人,對配置的檢查,需要把好最後一道崗。因習慣,未對新增的配置進行審查。
三、對於此次問題的處理,在一定程度上也是可行的方案。但是缺少了資料的支援,未做好測試、評估的工作。在用此方案處理後,未及時反饋給相關人員。
四、對線上執行環境有一定了解的技術(開發)人員未在場。
對於以上問題,解決的方法有很多種。但方法是對於特定問題,而提出的解決方案,是針對特定的場景和特定的人的,對於場景和人的依賴性比較大。
有沒有什麼其他方式可以採用呢?
將方法上公升到流程規範,讓它具有一定的普適性,有具體的步驟或標準,讓每個人都可以執行。減少對人的依賴。
例如:一、上面的問題,規範上加上明確的說明(可增加上線檢查清單),生產環境只能採用網域名稱的方式。開發人員或運維人員,其中一人都可以排除此問題。
二、對線上環境的調整,需要根據資料(業務高峰期的訪問量等指標)進行評估、驗證,才能進行調整。調整後需要通知(反饋)給相關人員。
流程規範,是可以提高團隊效率的。 從個體來看,因為流程規範的存在,可能存在效率降低的情況,但從團隊的角度來看,好的流程規範是可以提高效率的。
乙個配置引發的血案
乙個配置引發的血案 乙個配置引發的血案,記一次線上事故的覆盤。一天晚上的業務高峰期,出現了超時 資料載入不出來的情況 聯想到前一天有發版的工作,第一功能上並沒有太大的調整,此次發版內容更多的是新增的功能,使用者使用量也較少,基本可以排除因功能導致的問題 第二是否中介軟體出現問題,因資料的互動,有80...
乙個memset引發的血案
前幾天做了一道bst題,提交了幾次都是wa,今天抽空拿了出來仔細瞧瞧總算被我發現禍頭根源.總結原因還在於自己對memset不太了解,以前用對估計也是瞎貓撞見死耗子 memset的介紹 void memset void buffer,int ch,size t count buffer 指向某段記憶體...
乙個分號引發的「血案」
再多的表情也無法詮釋我現在的心情!a b for matrices 這是很水的一道題,然而卻整整折騰了我2個多小時。從晚上6點多開始,花了沒幾分鐘就把 敲好了,可是資料一測,竟然不對,然後就開始找問題,找了很久,我竟然都還沒看出問題在哪,越找心裡越不爽,這麼做明明對的呀,一執行怎麼就錯了呢?一直到了...