本文作者:韓鋒,阿裡雲資料庫進階産品專家
雲,為IT基礎設施的建構帶來很大的便利性。資料庫,作為雲中非常重要的一類産品,正有越來越多的客戶選擇使用。但在使用雲端資料庫時,經常有兩類做法:一是通過ECS自建資料,二是直接使用雲提供的資料庫産品。那麼這兩類做法,有什麼差異?使用者又該如何選擇呢?
下面通過在阿裡雲平台的一組測試,給你帶來答案!
1. 測試概述
本測試對比了阿裡雲中ECS自建資料庫(5.7/8.0版本)和RDS通用執行個體,在OLTP讀寫混合模型下的性能。測試使用了标準的sysbench 1.0工具,選擇規格是使用者最普遍使用的4核16GB規格資料庫,其中innodb_buffer_pool_size =12G。
1).測試場景
一共測試了3個場景,分别為:
- 記憶體命中型(CPU先到達瓶頸)150張表,每張表25000行資料,資料量大約2GB。
- 小規模IO型(CPU先到達瓶頸)150張表,每張表120萬行資料,資料量大約50GB。
- 大規模IO型(IOPS先到達瓶頸)150張表,每張表500萬行資料,資料量大約200GB。
2).測試結論
- 在CPU先到達瓶頸的場景下,RDS通用執行個體相比于ECS本地盤自建,性能優勢比較大。
- 在IOPS先到達瓶頸的場景下,RDS通用執行個體相比于ECS本地盤自建,性能優勢不大。
- 在3個場景中,RDS通用執行個體相比于ECS本地盤自建,均有一定的性能優勢,且整體表現穩定。
2. 測試環境

- ECS自建環境的MySQL,采用了主從架構。
- RDS采用4C 16GB,本地SSD,高可用版通用型,主從架構。
- ECS自建MySQL與RDS,使用了相同的配置模闆。
3. 測試資料(場景:記憶體命中型)
1).MySQL5.7 高性能模闆
- 在不同并發條件下,RDS均較ECS自建MySQL性能更優。
- 在低并發(并發度=16)條件下,RDS性能表現更為突出。其QPS名額比ECS本地盤高87%。
- 開源MySQL沒有線程池功能,高并發下抖動大。
2).MySQL8.0 高性能模闆
- 在低并發(并發度=16)條件下,RDS性能表現更為突出。其QPS名額比ECS本地盤高70%。
- 開源MySQL沒有線程池功能,高并發下抖動非常大,基本處于不可用狀态。
4. 測試資料(場景:小規模IO型)
- 在低并發(并發度=16)條件下,RDS性能表現更為突出。其QPS名額比ECS本地盤高107%。
- 開源MySQL沒有線程池功能,高并發下抖動非常大。
- 在低并發(并發度=16)條件下,RDS性能表現更為突出。其QPS名額比ECS本地盤高82%。
❖ CPU先達到瓶頸
- 16個并發時,RDS的cpu開始打滿。整個壓測過程中,IOPS并未到達瓶頸。
- ECS本地盤的監控資訊顯示,讀和寫的IOPS一直在3000左右,峰值讀3000,寫6000左右。
5. 測試資料(場景:大規模IO型)
- 在不同并發條件下,RDS均較ECS自建MySQL性能占優。
- 因為RDS的IOPS先到達瓶頸。整個壓測過程中,RDS的QPS相對于ECS本地盤的優勢不是太大,高10%左右。
- 讀寫IOPS較大,ECS+ESSD雲盤的性能劣勢可以展現出來。
❖ IO先達到瓶頸
- 壓測過程中,RDS的cpu未用滿。IOPS到達瓶頸,實體讀維持在6000左右。
- ECS本地盤,IOPS超過了RDS的使用限額(7000)。
- ECS的CPU可以用滿。
- RDS在IO壓力很大下,性能表現依然平穩。
- 因RDS的IOPS先到達瓶頸。壓測過程中,RDS的QPS相對于ECS本地盤的優勢沒有上一場景大。
- 讀寫IOPS較大,ECS+ESSD雲盤的性能劣勢凸顯,衰減嚴重。
- 開源MySQL8.0在高IO情況下,性能退化嚴重。
6. 從測試中獲得...
通過上述測試資料可以看出,RDS較ECS自模組化式在性能表現上更為出色。這主要是基于雲廠商多年在資料庫領域的實踐深度優化所得。當然,使用者在做選擇時,不能僅僅依據性能表現,而應該基于更多元度考量。下表簡列一二,供各位參考。
- RDS本身具有極高的可用性,自建方式需使用者維護。
- 外圍功能(例監控、備份、優化等),自建方式需使用者建構。
- 自建方式的自主性較大,使用者可定制化自身需求。
BTW:如何獲得高性能參數模闆
在購買RDS步驟“執行個體配置”中,可在如下位置選擇“高性能參數模闆”