我司 CTO 和技術總監都是騰訊系的,所以我們一開始就選用騰訊雲的服務。他們家的雲數據庫提供了可視化的運維操作頁面和自動備份的能力,降低了數據庫運維的門檻。同時雲數據庫還支持高可用架構,對數據的安全性和服務的可靠性更有保障。另外有的雲數據庫廠商還提供了諸如數據庫審計、慢查詢分析、數據回檔等能力,大大減輕了數據庫運維和 DBA 的工作量。
其實我們就沒有專門的 DBA,都是開發自己上去折騰,通過把數據庫的可靠性外包給雲端,確實極大地降低了我們的工作量,這一點還是挺爽的。但是在具體的使用過程中,發現還是有些地方不夠滿意,比如 MySQL 最高版只有5.6,沒法用上 5.7.8+ 新增的 JSON 字段;建立數據庫自帶的只讀從庫門檻較高(要最高版本);binlog 的備份不方便;數據庫授權上的坑(沒有FILE和SHUTDOWN權限,不能grant all on *.*)等。
記得以前對比過阿裡雲和 UCloud 的雲主機磁盤 IO(那時候騰訊雲好像才剛起步呢),這麼久過去了,再來比比看,他們的雲數據庫怎麼樣。國內目前就只有這三家還算比較能入眼吧,網易和百度的就先跳過,都沒聽說誰家在用。另外那個 X 雲就算了,期權都能黑下來的公司,估計也活不了多久。
這次除了對比性能,順便再看看價格。
在測試開始之前先打個預防針:以下的測試可能比較粗糙,並不是針對實際業務進行的,所以結果僅供參考,僅代表作者本人的觀點和使用場景。而且實際的業務往往並不是以性能為唯一考量標准,公司的一整套業務需要多項雲服務的支撐,最基礎的主機、數據庫、NoSQL、對象存儲、負載均衡等服務這幾家都比較完善了,但是在增值、附加服務上各有優劣、亮點,實際選型還是應該根據業務特點仔細考量。
性能首先最重要的,是雲數據庫的讀寫性能。我在規劃實例的配置時,主要考慮下面 2 點:
因此我選擇的數據庫配置如下:硬盤 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 介紹比較簡單,還需要進一步提高。
本文僅代表個人觀點,如有意見和建議,歡迎探討。
原文來自:https://linux.cn/article-7596-1.html
本文地址:http://www.linuxprobe.com/cloud-database-contrast.html
http://xxxxxx/Linuxjc/1184737.html TechArticle