2016年元旦剛過,微信搶紅包就出了名。2016年元旦,微信跨年紅包收發總量達到23.1億次,甚至最高峰值在一分鐘內有240萬個紅包被發出,620萬個紅包被拆開。和這些數字相比,搶紅包期間出現的各種異常、故障更令人印象深刻。今年跨年夜期間,微信紅包再次由于使用人數過多,突破了其服務器可承載的峰值而出現故障。在2015年12月31日晚十一點到2016年凌晨一點時間,微信開始出現紅包無法發出,無法正常收取群信息、在朋友圈無法發圖等現象,系統顯示原因是因為系統繁忙、獲取證書信息失敗。顯然微信應對紅包流量洪峰到來,準備還不夠充分。當用戶開始爆發式增長時,數據中心往往還沒有做好準備,就會出現各種問題,訪問體驗效果大打折扣。之前12306網站、淘寶雙十一時支付寶都出過系統崩潰問題,都是對流量洪峰預估不足,當真正的流量沖擊數據中心時,數據中心的各種防御體系迅速崩潰。
如今很多種應用流量都具有突發性的特點,造成訪問數據中心的用戶數量并不是平穩,而是變化的。比如很多網站推出的限時搶購,特定時間登記報名等,這些應用都是在某個時間點突然大量的用戶訪問,時間過后一切又恢復平時用戶訪問狀態,這個突發流量是平時流量的數十倍,甚至數百倍。在如此大的突發流量下,再強的數據中心也難以抵擋,不過反過來看,抵御突發流量洪峰的能力凸顯了一個數據中心的綜合性能。哪個數據中心也不想“一世英名,毀于一旦”,而且這種短期的大量用戶訪問,往往可以給數據中心帶來極為豐厚的回報,這是誰也不愿意放棄的原因。我們在談論數據中心性能時,往往主要考慮是否是綠色的,服務器處理能力怎樣,網絡帶寬等,很少有談及抵御流量洪峰能力,都是根據以往業務訪問量來設計數據中心,對于數據中心可能遇到的突發流量洪峰預估不足,這樣在集中時間搞各種活動時,流量洪峰到來,就容易掉鏈子。這類活動受關注的程度都很高,在這樣的注視下出現問題,帶來的負面影響是深遠的,會因此流失很多忠實客戶,所以應該將抵御流量洪峰的能力看成是數據中心的重要性能指標之一。
一個數據中心,擁有再多服務器、再寬的網絡帶寬、軟件系統再牛,抵御不住一次流量沖擊也是無用。數據中心在進行設計時,一定要考慮流量洪峰的情況,這個流量洪峰有多大,要采集各種數據,進行縝密分析,得出可能出現的流量洪峰,根據這個可能出現流量洪峰進行數據中心設計。考慮到成本的原因,數據中心不可能無限制地擴建規模,這樣獲得流量洪峰數據至關重要,可以根據這些數據模擬流量向數據中心發起攻擊測試,看數據中心的整體表現,每一個訪問用戶體驗感怎樣,發現不足的地方及時更正,直到整個數據中心可以自如應對攻擊測試。當然,模擬測試和真實的訪問流量還是有區別,不可能做到完全一致,數據中心涉及的細節技術實在太多和復雜,所以一般通過模擬測試后,還要再留有50%的余量,以便應對可能出現的突發情況,即使這樣還是不能完全避免真正的流量洪峰到來時,數據中心不出一點問題。對于這種情況,數據中心往往會做多種應對方案,比如將突發流量及時分發到各個數據分中心,多點同時處理,減少流量對數據中心整體沖擊;臨時在原有數據中心機房搭建網絡和服務器設備,一旦頂不住,及時將這些備用設備接入網絡,擴大數據中心處理能力;亦或對訪問用戶進行限流限量,雖然降低了用戶的體驗感,至少數據中心不會整體崩潰,大量用戶排隊、等待訪問。這也是我們在訪問一些網站時經常遇到的情況,當打開某個網站或應用時,會得到提示“如果遇到系統繁忙,建議稍晚重新操作”,這種是數據中心最普遍的做法,所以數據中心遇到這種流量洪峰,就會進行限流,這也是一種不得已而為之的做法,是數據中心達到性能極限的體現,所以將數據中心應對流量洪峰能力作為性能指標再適合不過了。
抵御流量洪峰的能力往往需要從應用層來進行評估,很多指標不好量化,它不像PUE、網絡帶寬、服務器CPU 能力那么好量化,更多的是訪問用戶的一種體驗。比如在訪問數據中心時,網頁界面打開需要的時間,填寫各種信息時避免有無響應情況,這些感知型的體驗無法量化。當然,我們可以用訪問用戶的量來進行評估,比如多個用戶并發,持續時間,每個用戶的訪問流量多少,根據這些訪問用戶的特征,再對數據中心進行測試,得出數據中心的性能評估。性能結果就是在這樣規模的用戶量下,數據中心的表現是好、比較好、一般、較差、差幾個等級中的一個。根據這個評估結果,再對數據中心進行改進,改進的效果最終還是通過模擬訪問用戶的量來確定。在面對流量洪峰時,一旦數據中心出現了系統繁忙的情況,用戶訪問出現等待的情況,就說明數據中心性能不足,流量洪峰過后還需要對數據中心進行優化,以便在下一次流量洪峰到來時,數據中心能抵擋住。如果數據中心業務發展得比較好,用戶量必然不斷增長,流量洪峰會越來越高,數據中心需要不斷提升性能,積極應對,否則在連續出現體驗差,訪問長時間等待的情況,就會漸漸流失用戶。最讓人樂見的是,數據中心每次應對流量洪峰后,對于出現的問題及時進行補救,數據中心性能不斷提升,抵御流量洪峰的能力越來越強。