[更新:抱歉!“黑色1秒”后來又出現了,詳見:雲計算之路-阿里雲上-幸福沒那么容易:“黑色1秒”又出現了]
前幾天發生了2件神奇的事情:一是1位園友在阿里雲上遇到了和我們一模一樣的“黑色1秒”問題;二是阿里雲推出了IO優化的基於KVM架構的服務器,據說理論上可以解決“黑色1秒”問題。很巧的是,這2件事情竟然開始於同一天。
“黑色1秒”問題是我們在阿里雲上遇到的最神妙莫測,也是折磨我們時間最長的一個問題。它於2014年5月8日被發現,一直折磨我們到現在,這一年多我們只能依靠“每天重啟應用程序”過着雲上的“幸福”生活。
(“黑色1秒”最顯著的特征:QPS為0)
折磨我們到現在,我們也與之斗爭到現在。雖然我們曾經信心滿滿地懷疑——黑色1秒,微軟的問題還是阿里雲的問題?,但我們依然沒辦法百分百確認與我們的應用程序無關,因為之前沒有在阿雲上發現遇到同樣問題的第2位用戶。用盡各種招式之后,我們只剩最后一招——借着.NET跨平台的東風,等.NET Core/ASP.NET 5推出后,將Web服務器由Windows換成Linux,來驗證“黑色1秒”是否與應用程序有關。當然,這一招也是非常艱苦的一招,要大量修改應用程序的代碼,要等跨平台.NET的推出,我們預計至少需要一年的時間。
同時,阿里雲也一直與之斗爭。開始投入很多力量優化Xen,“黑色1秒”依舊;接着把Xen換成KVM,“黑色1秒”還是依舊;后來推出帶SSD臨時磁盤的雲服務器,“黑色1秒”繼續依舊。。。
正當“黑色1秒”問題的解決沒有一線希望,正當准備與“黑色1秒”打一場待久戰時,開頭說的2件神奇的事情降臨了。
當得知第2位阿里雲用戶遇到了與我們一模一樣的“黑色1秒”,我們就無需采用最后一招去驗證了。這個問題已經不是我們可以解決或者可以幫助解決的,只能等阿里雲去解決。
當得知阿里雲推出了有望解決“黑色1秒”問題的新服務器(經過IO優化的kvm虛擬機,之前是xen虛擬機),我們終於等到了一次來之不易的希望。立馬部署新服務器進行驗證。
昨天13:30左右,新服務器上線。根據之前的多次觀察,“黑色1秒”在程序持續運行24小時后必然出現。
今天13:30之后,進行着緊張的觀察。13:40沒出現“黑色1秒”,13:50沒出現“黑色1秒”,14:00也沒出現“黑色1秒”。。。但我們還是不敢輕易確認“黑色1秒”問題已解決。因為曾經的一次一次希望落空記憶猶新。
一直觀察到15:00,QPS一直很穩定,沒有出現一次QPS為0的情況。
這時我們才敢相信這一次幸福真的來了——“黑色1秒”終於問題解決啦!雲上真正的幸福生活開始啦!