國內三大雲數據庫測試對比

導讀 騰訊雲數據庫提供了可視化的運維操做頁面和自動備份的能力,下降了數據庫運維的門檻。同時雲數據庫還支持高可用架構,對數據的安全性和服務的可靠性更有保障。另外有的雲數據庫廠商還提供了諸如數據庫審計、慢查詢分析、數據回檔等能力,大大減輕了數據庫運維和 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 介紹比較簡單,還須要進一步提升。

本文僅表明我的觀點,若有意見和建議,歡迎探討。

相關文章
相關標籤/搜索