天天看點

磊哥測評之資料庫篇:騰訊雲資料庫vs阿裡雲資料庫

上期評測中,我發現了雲資料庫這個新大陸,并且對比了騰訊雲資料庫和自建資料庫的性能,發現在不對自建資料庫進行優化的前提下,雲資料庫相比較自建資料庫還是有很大性能上的優勢的。這篇文章在朋友圈分享了,有朋友點了贊,不過也有人在下面吐槽:拿雲資料庫跟自建資料庫比,不是開玩笑嗎。确實,雲資料庫跟自建資料庫在具體的硬體配置上沒法完全統一,比如硬碟是普通磁盤還是SSD,網絡帶寬跟穩定性是否有差異等。于是我萌生了一個想法,借了朋友的阿裡雲賬号,來看看同樣都是雲資料庫,同樣配置的情況下,阿裡雲和騰訊雲各自能給出多優秀的答卷。

同樣的,這次我選擇了阿裡雲資料庫RDS的4核8G和8核32G版本,對比同樣配置的騰訊雲資料庫,在不修改參數、不做配置改動的前提下,使用sysbench進行分别進行壓力測試,詳細配置如下表所示:

對象 記憶體 CPU 硬碟 CVM作業系統 MySQL版本 sysbench版本
阿裡雲 8G/32G 4核/8核 200G雲盤 CentOS 7.2 64位 5.7 1.0.9
騰訊雲 8G/32G 4核/8核 200G雲盤 CentOS 7.6 64位 5.7 1.0.9

為了保證公平公正,我們需要控制大部分變量,包括用來進行測試的雲主機的軟硬體配置和網絡帶寬(均通過内網連接配接)。接下來就可以進行測試了,這次測試的資料依然是由sysbench自動生成,20張表x1000萬行資料,線程數從20-500,每組測試兩次取平均值,依然采用讀寫混合的模式比較QPS和TPS等性能參數名額。下面我們直接來看4核8G阿裡雲比對騰訊雲的測試結果:

磊哥測評之資料庫篇:騰訊雲資料庫vs阿裡雲資料庫

結果比想象的有趣,騰訊雲在50線程以下的時候表現超出阿裡雲太多,維持在1.5-2倍,在100-200線程的時候,騰訊雲的吞吐量維持在阿裡雲的1.2倍左右,但是阿裡雲對并發能力的支援效果好過騰訊雲。在500線程的時候,阿裡雲依然能保持在46000+并發的水準,遠高于騰訊雲的28000+。

為了比對驗證,我們再來比較一下8核32G的測試結果:

磊哥測評之資料庫篇:騰訊雲資料庫vs阿裡雲資料庫

看起來整體走勢基本相同,騰訊雲資料庫的峰值表現在50-100線程之間,不過騰訊雲資料庫的性能力真心強啊,最好的時候甩了阿裡雲一倍以上。在32G記憶體的支援下,阿裡雲和騰訊雲并發性能也有了提升,在500線程的時候阿裡雲一直保持恐怖的穩定,筆者特地又加測了750和1000線程,知道1000線程時阿裡雲仍保持70000+的QPS,不過騰訊雲也不甘示弱,維持在60000的高水準。

我們再來感受一下TPS的對比:

磊哥測評之資料庫篇:騰訊雲資料庫vs阿裡雲資料庫

TPS(Transactions Per Second)表示伺服器每秒處理的事務,因為跟事務挂鈎,也是MySQL在OLTP場景一個非常重要的測量名額。整體來看,騰訊雲的可用性高于阿裡雲,不過對多線程的支援上還是較阿裡雲稍差一些。

此外還比較了延時等其他穩定性名額,騰訊雲跟阿裡雲基本相同,因為篇幅問題就不在文章中貼圖了,感興趣的同學也可以自己動手測一下。

另外要給阿裡雲開發小哥哥們提個建議,在測試過程中,使用阿裡雲主機的遠端連接配接Web版輸入長指令實在是太痛苦了,一旦輸入就很難修改,往往要删掉重來。另外遠端連接配接的反應很慢,而且螢幕一滾動就開始顯示亂碼,建議開發小哥哥們改進一下。

不過這裡要稱贊一下阿裡雲資料庫的性能監控,做的實在是高大上,看着很舒心,這裡貼給大家看一下我測試時的實時監控截圖:

磊哥測評之資料庫篇:騰訊雲資料庫vs阿裡雲資料庫

在測試的時候可以實時監控QPS/TPS,還有連接配接數和網絡,比起看sysbench的平均資料資訊量大多了,可以看到的性能的抖動。還可以翻曆史記錄。到這裡我才發現,原來雲資料庫賣的可不僅僅是資料庫,還有資料管理、性能監控、系統告警等等功能呢,這下我明白朋友公司為什麼要用雲資料庫了。不說了,我找老闆聊聊去。

最後還是要給出一個結論,通過我的簡單測試,發現MySQL的吞吐量性能(QPS/TPS),在較低線程數的時候騰訊雲遠好于阿裡雲,随着線程數增加,騰訊雲資料庫在性能上增長不及阿裡雲,但總體仍強于阿裡雲,在500線程+的戰場,騰訊雲落後于阿裡雲。不過随着硬體配置增長,二者對并發的支援也在不斷增加,到8核32G記憶體往上,騰訊雲跟阿裡雲在高并發場景下差距已經不大。

我把測試結果給朋友看,朋友翻了個白眼:“高并發還用什麼MySQL,那時候應該用Redis啦。”

什麼?Redis,我不熟啊,有沒有雲資料庫Redis版給我玩一下。一搜,嘿,還真有,那麼下期我們來看一下Redis吧。