阿里雲RDS Serverless測評

語言: CN / TW / HK

在4月底,阿里雲RDS Serverless正式公測釋出。第一時間申請了公測資格,並進行了測試驗證。測試完成後,整體上,還是非常值得期待的,值得開發者們去了解和小範圍(例如開發測試環境)嘗試。測試中,該Serverless版本的升/降配速度非常快,約10秒完成壓力檢測與變配,升配時效能表現非常平穩,降配時效能比較平穩。只是目前只支援基礎版(單節點例項),應用場景還比較有限,不過對於開發測試環境這類,可用性要求沒那麼高,且效能峰谷明顯的場景,是可以輕鬆節省超過50%成本的,而且在需要的時候,效能還會非常不錯。

整體測試結論概述

  • 在系統壓力突增時,阿里雲RDS Serverless的響應也非常快,約10秒內就可以完成變配;在之前的Aurora Serverless v2測試中,升配的時間是差不多的,都是10秒以內。
  • 在系統壓力下降時,阿里雲RDS降配的速度也非常快,在系統壓力降低之後,10秒就完成了降配。另外,當前的版本,因為降配非常快,也導致降配後,效能出現了一些波動,持續約10秒,波動幅度從約8毫秒的響應時間增長到30~50毫秒,在兩次降配之後,都出現這個小波動。
  • Aurora降配更加“保守”,觀測了50秒,之後才開始降配。但這50秒應該是有一些講究的,在降配之後,Aurora的效能依舊非常平穩,沒有任何波動。也就是,降配過程中清除出記憶體池的資料頁都是確確實實不再使用的,這裡可能需要深入的觀測InnoDB的Buffer Pool收縮時的表現,避免將可能使用資料頁清理出記憶體。
  • 當然,現在阿里雲Serverless還是剛剛公測,作為嚐鮮和測試使用,甚至在開發測試環境嘗試使用,都是非常合適和推薦。而且,在公測階段,可免費建立2個例項體驗,最大8RCU,即約8c16g記憶體的例項,免費週期3個月: 雲資料庫 RDS Serverless版公測申請  。

測試方法說明

整體的測試方法與之前做Aurora Serverless v2類似。首先,啟動一個單執行緒sysbench,作為測試 “主程序” ,程式執行900秒,在 “主程序” 執行300秒後,再啟動一個 “壓力程序” (24併發的sysbench程序)向系統施壓,該程序執行300秒後退出,在這個過程中,我們觀測”主程序”的rt變化,以及整個過程中,例項規格的變化(依舊以buffer pool為指標)。更詳細的描述可以參考: 實測Aurora Serverless v2

測試結果與分析

整體過程如下:

  • 下圖黃點代表主程序每秒RT的變化;”藍點”(連成線)代表秒級別buffer pool的變化
  • 在第300秒,“壓力程序”給出額外壓力之後,系統開始升配,經過三次升配之後,到最大規格
  • 在第600秒,“壓力程序”推出,經過了4次降配,降級到最低規格

升配過程

  • 從如下放大的圖可以看到,在“壓力執行緒”啟動的第300秒,“主執行緒”的響應時間立刻增長到了300ms。
  • 該例項在之後的7秒內完成升配,例項響應時間也立刻降了下來,降到約75毫秒
  • 之後,再過10秒(約第317秒),完成了第二次升配,例項響應時間再次下降,約到30毫秒
  • 再之後,再過約10秒(約第328秒),再次升配,但是此時響應時間不再有什麼變化

降配過程

  • 第600秒,壓力程序退出,約11秒後,完成降配。但是,在第15秒效能出現明顯波動,持續10秒
  • 第650秒,完成第二次降配,4秒後效能出現波動,持續約5秒
  • 第670秒,再次降配,效能再次波動,並出現一個異常點,響應時間非常大(約200ms)
  • 之後,系統平穩執行

其他

  • 當前RDS Serverless處於公測階段,沒有SLA保障,且僅支援基礎版、區域支援也有限,雖然降配和升配都比較快,也比較穩定,但是還不適合生產環境。
  • 當前,例項規格區間為0.5~8 RCU,最大規格也還比較小。
  • 在這次對比測試中,也發現,相比AWS,阿里雲在同一個可用區的網路延遲是更低的,僅5~10ms,而Aurora同可用區響應時間約為15~20ms。
  • 據瞭解,阿里雲今年還是會在這個方向加大投入,還會有一些大的版本和改進發出來,拭目以待吧。

相關閱讀