國內三大雲資料庫測試對比

語言: CN / TW / HK

導讀

騰訊雲資料庫提供了視覺化的運維操作頁面和自動備份的能力,降低了資料庫運維的門檻。同時雲資料庫還支援高可用架構,對資料的安全性和服務的可靠性更有保障。另外有的雲資料庫廠商還提供了諸如資料庫審計、慢查詢分析、資料回檔等能力,大大減輕了資料庫運維和 DBA 的工作量。

我司 CTO 和技術總監都是騰訊系的,所以我們一開始就選用騰訊雲的服務。他們家的雲資料庫提供了視覺化的運維操作頁面和自動備份的能力,降低了資料庫運維的門檻。同時雲資料庫還支援高可用架構,對資料的安全性和服務的可靠性更有保障。另外有的雲資料庫廠商還提供了諸如資料庫審計、慢查詢分析、資料回檔等能力,大大減輕了資料庫運維和 DBA 的工作量。

其實我們就沒有專門的 DBA,都是開發自己上去折騰,通過把資料庫的可靠性外包給雲端,確實極大地降低了我們的工作量,這一點還是挺爽的。但是在具體的使用過程中,發現還是有些地方不夠滿意,比如 MySQL 最高版只有5.6,沒法用上 5.7.8+ 新增的 JSON 欄位;建立資料庫自帶的只讀從庫門檻較高(要最高版本);binlog 的備份不方便;資料庫授權上的坑(沒有FILE和SHUTDOWN許可權,不能grant all on *.*)等。

記得以前對比過阿里雲和 UCloud 的雲主機磁碟 IO(那時候騰訊雲好像才剛起步呢),這麼久過去了,再來比比看,他們的雲資料庫怎麼樣。國內目前就只有這三家還算比較能入眼吧,網易和百度的就先跳過,都沒聽說誰家在用。另外那個 X 雲就算了,期權都能黑下來的公司,估計也活不了多久。

這次除了對比效能,順便再看看價格。

在測試開始之前先打個預防針:以下的測試可能比較粗糙,並不是針對實際業務進行的,所以結果僅供參考,僅代表作者本人的觀點和使用場景。而且實際的業務往往並不是以效能為唯一考量標準,公司的一整套業務需要多項雲服務的支撐,最基礎的主機、資料庫、NoSQL、物件儲存、負載均衡等服務這幾家都比較完善了,但是在增值、附加服務上各有優劣、亮點,實際選型還是應該根據業務特點仔細考量。

效能

首先最重要的,是雲資料庫的讀寫效能。我在規劃例項的配置時,主要考慮下面 2 點:

  • 首先,雲資料庫要使用 SSD 硬碟,這樣能夠保證資料庫伺服器的 IO 儘量的快
  • 其次,雲資料庫的記憶體要儘可能大,這樣有儘可能多的資料能夠被快取,提高讀寫速度

因此我選擇的資料庫配置如下:硬碟 300GB SSD,記憶體 8GB 左右。由於每個雲平臺提供的配置都不相同(騰訊雲的記憶體和磁碟比例是限定的,UCloud 的記憶體沒有 8G 等等),我在三個雲平臺上分別申請了如下配置的雲資料庫進行效能測試:

國內三大雲資料庫測試對比國內三大雲資料庫測試對比

由於實際情況下,雲資料庫一般是通過雲伺服器進行訪問的,因此我在這 3 個平臺分別申請了配置差不多的雲主機,在上面執行效能測試。我申請的雲主機的作業系統都是 64 位 CentOS 6.5,具體的配置如下:

國內三大雲資料庫測試對比國內三大雲資料庫測試對比

現在比較流行的測試資料庫工具是 sysbench,為了和實際使用的情況吻合,我對 sysbench 做了引數上的修改。

一般來說,讀操作要遠遠多於寫操作,並且有很多操作是需要範圍查詢和排序的,所以我在測試中提高了讀操作的比例,特別是提高了範圍查詢和排序的比重。

同時,對於寫操作,稍微提高了 update 操作的比例。最終執行的測試中,每一個事務的讀操作和寫操作的比例是 6:1 左右。為了模擬專案啟動之後的場景,我的 sysbench 測試集的資料量是總共 20 張表,每張表 200 萬行資料,開啟 32 個執行緒,並行向資料庫傳送事務請求,共執行 30 分鐘。下面是我觀察到的結果:

國內三大雲資料庫測試對比國內三大雲資料庫測試對比

把這個測試結果做成圖表是這個結果:

國內三大雲資料庫測試對比國內三大雲資料庫測試對比

這個效能測試結果大大出乎我的意料,雖然 UCloud 的資料庫介面看上去和阿里雲騰訊雲相比比較樸實,產品介紹中也介紹的相對簡單,但是,效能上的優勢讓我吃驚。說實話,自己測試之前,我沒想到 UCloud 有如此大幅領先的效能。從測試結果分析,UCloud 比阿里雲高了 422%,比騰訊雲高了 297%。而且,這還是在 UCloud 雲資料庫的記憶體不如其它 2 家大的情況下的結果(UCloud:6G 記憶體,阿里雲騰訊雲:8G 記憶體)。

這個資料讓我對 UCloud 的 SSD 雲資料庫效能十分動心,要知道,這個是我沒有做過任何調優,開箱即用的配置,完全符合我對於雲資料庫“快速部署,效能滿意”的期望。

以下是測試結果的截圖,從上到下分別是 UCloud 的 UDB,阿里雲 RDS 和騰訊 CDB:

國內三大雲資料庫測試對比國內三大雲資料庫測試對比

UCloud 的 UDB

國內三大雲資料庫測試對比國內三大雲資料庫測試對比

阿里雲 RDS

國內三大雲資料庫測試對比國內三大雲資料庫測試對比

騰訊雲 CDB

價格

看過了效能之後,我又順便分析了一下價格,貌似阿里雲和 UCloud 的價格是線性關係的。阿里雲根據記憶體,CPU 和磁碟定價,而 UCloud 根據記憶體和磁碟定價,CPU 免費。騰訊雲的配置只有幾檔,每一檔根據記憶體和磁碟來定價,記憶體和磁碟的排列是固定的,不是簡單的線性關係。因此,我計算出了阿里雲和 UCloud 的價格因素的計算常數,然後以騰訊雲的配置為基礎,分別推算了 3 個廠商在同等條件下的價格,可以得到三個廠商的定價趨勢圖如下:

國內三大雲資料庫測試對比國內三大雲資料庫測試對比

其中,騰訊雲的價格是最便宜的,只是磁碟和記憶體的比例是固定的;UCloud 的價格比騰訊雲略貴,而阿里雲比其它兩家要高出40% 左右的價錢。這可能是因為阿里雲主備架構的關係;不過,我發現 UCloud 的普通版 UDB 和高可用版 UDB 幾乎是一個價錢,也就是說,如果考慮主備架構的高可用版雲資料庫,UCloud 的高可用版例項的價格比阿里雲要低 40%。仔細看了下,貌似 UCloud 的高可用資料庫最近在進行促銷,所以才會這麼划算,也就是說趁活動期間購買的話可以省一大筆錢。可惜我們用的是騰訊雲……

總結

阿里雲的文件非常全,而且詳細。很多資訊都可以通過文件來獲取。而且它的 MySQL 線上管理工具很強大,就是建立資料庫的時候比較麻煩,還是要去介面上申請建立資料庫,價格較貴。

騰訊雲雖然沒有阿里雲的 RDS 做的那麼完善,也還算易用。他們使用 PHPMyAdmin 來管理資料庫,對於熟練這套工具的開發人員可能比較容易上手。價格較便宜。

UCloud 雲資料庫測出的 TPS 和 QPS 效能遠高於業內平均水平。而且產品易用性好,價格適中。

綜上所述,價效比最高的雲資料庫是 UCloud 的 UDB。

額外再提一句,對於名列在程式設計師最討厭兩件事之一的“寫文件”,在檢視 3 個廠商的資料庫產品介紹時,感覺阿里雲騰訊雲的產品介紹做的很好,裡面有各種解決方案的架構,非常貼心。而且雲資料庫和雲主機自建資料庫的區別也講得很直觀;而 UCloud 的 UDB 介紹比較簡單,還需要進一步提高。

本文僅代表個人觀點,如有意見和建議,歡迎探討。

本文地址:http://www.linuxprobe.com/cloud-database-contrast.html

免費提供最新Linux技術教程書籍,為開源技術愛好者努力做得更多更好:http://www.linuxprobe.com/thread