大促準備(八)大促當天執行
經過了前面的各種準備,大促終于到了,在大促當天要關注的事情也是相當多的,需要有條不紊的按部就班的執行。
1.值班安排
大促期間執行、驗證、觀察的事項還是比較多的,最好是有兩個人進行主備,每一件事情最好能夠double check,并且做好事項的分工。
2.應用服務器磁盤空間清理|重啟
系統在運行過程中通常會打印多種的日志,日志打印的速度要比系統的執行速度慢上不少,如果在打印日志的過程中發現磁盤空間不夠用,還需要進行磁盤清理,將老的日志文件給清除掉。這種操作是很占用cpu和io資源,嚴重的話會把系統夯住,導致請求大量超時。因而在大促高峰前需要對應用服務器的磁盤進行清理,只保留最少量的文件,降低高峰前因為打印日志引發的系統的不可用風險。
對于采用java語言的系統,服務器重啟主要是為了釋放內存,避免在高峰期發生old區gc或者full gc,使得系統暫時不可用,影響上游系統的調用
3.限流推送和驗證
在日常情況下,限流的模式可能是監控模式,在大促高峰期需要設置為攔截模式,避免系統雪崩。
主要是根據線上確切的服務器數量和大促預期峰值,確定單機限流值,而后推送到全集群。推送之后就是驗證了,這個驗證一方面是單機抽查,另一方面靠系統的監控。
4.預案推送和驗證
在臨近高峰期前,會推送預案,通常會設置定時預案執行集,這樣不用一個一個預案的推送,減少工作量也能統一管理,因而要確保自己系統的預案配置在了預案集中了。
雖然預案的驗證工作量相對會多些,但是按照之前確定好的驗證list按部就班的驗證就可以了,可以做到忙而不亂。
5.監控準備
大促高峰期主要需要監控的事項比較多:error、rt、cpu、load、gc、db、tair、message、限流、下游主要系統等、上游主要系統等,需要根據之前的分工來監控不同的事項。在高峰來臨前將對應的監控打開準備好觀察,同時web形式的監控因為會涉及到日志的打印、傳輸、計算、展現等操作,會有一定的延時,因而最好能夠打開相應的終端,登錄上對應的服務器,使用腳本或者命令實時查看服務器的狀態。
6.高峰期觀察&應急
雖然前面經歷了大量的準備工作和各種各樣的預案,我們也期望大促能按照我們的期望來進行的。但天有不測風云,仍然有可能發生預料之外的事情,這個時候更多的依賴系統owner的平時的積累了,綜合評估情況在很短的時間內采取應對措施。
常用的手段就是限流、降級、熔斷,還有一種就是靜觀其變,等待高峰期自己過去,具體采取哪種措施要依問題嚴重程度、是否會持續等來綜合評估,別人都是旁觀者、建議者,真正能做決定的就是系統owner,要為決策負責的也是系統owner,也真是這種決策的壓力促使owner成長。
如果沒有預料外的事情發生,就靜靜的觀察監控,分析思考高峰期的種種現象。
7.大促數據記錄
這次的大促是對前一段工作的檢驗,也是下一個大促的起點,這次大促高峰期的各項數據將會對下一次的大促的準備提供非常好的基礎,因而要對大促期間的數據做好記錄并備案,供以后進行分享參考,記錄的數據主要有兩類:
1)高峰數據,了解各種峰值
2)全天數據,了解全天的變化
8.預案、限流回滾
當大促高峰或者活動結束后,通常會把之前推送的預案和限流進行回滾。回滾通常也是配置在預案集中的,進行集中的回滾。回滾的時候同樣要注意觀察,特別是上游降級預案的回滾,很可能是會導致自己系統的調用量猛增,相當于又來了一次高峰,千萬不要因為大促過去了就掉以輕心,在最后的關頭出故障。
浙公網安備 33010602011771號