我司CTO和技術總監都是騰訊系的,因此咱們一開始就選用騰訊雲的服務。他們家的雲數據庫提供了可視化的運維操做頁面和自動備份的能力,下降了DB運維的門檻。同時雲數據庫還支持高可用架構,對數據的安全性和服務的可靠性更有保障。另外有的雲數據庫廠商還提供了諸如數據庫審計、慢查詢分析、數據回檔等能力,大大減輕了數據庫運維和DBA的工做量。
其實咱們就沒有專門的DBA,都是開發本身上去折騰,經過把數據庫的可靠性外包給雲端,確實極大地下降了咱們的工做量,這一點仍是挺爽的。可是在具體的使用過程當中,發現仍是有些地方不夠滿意,好比MySQL最高版只有5.6,無法用上5.7.8+新增的JSON字段;創建數據庫自帶的只讀從庫門檻較高(要最高版本);binlog的備份不方便;數據庫受權上的坑(沒有FILE和SHUTDOWN,不能grant all on *.*)等。
記得之前對比過阿里雲和UCloud的雲主機磁盤IO(那時候騰訊雲好像纔剛起步呢),這麼久過去了,再來比比看,他們的雲數據庫怎麼樣。牆內目前就只有這三家還算比較能入眼吧,網易和百度的就先跳過,都沒據說誰家在用。另外那個不要臉的X雲就算了,期權都能黑下來的公司,估計也活不了多久。
此次除了對比性能,順便再看看價格。
在測試開始以前先打個預防針:如下的測試可能比較粗糙,並非針對實際業務進行的,因此結果僅供參考;並且實際的業務每每並非以性能爲惟一考量標準,公司的一整套業務須要多項雲服務的支撐,最基礎的主機、數據庫、NoSQL、對象存儲、負載均衡等服務這幾家都比較完善了,可是在增值、附加服務上各有優劣、亮點,實際選型仍是應該根據業務特色仔細考量。
php
首先最重要的,是雲數據庫的讀寫性能。我在規劃實例的配置時,主要考慮下面2點:首先,雲數據庫要使用SSD硬盤,這樣可以保證數據庫服務器的IO可以儘可能的快。其次,雲數據庫的內存要儘量大,這樣有儘量多的數據可以被緩存,提升讀寫速度。
所以我選擇的數據庫配置以下:硬盤300GB SSD,內存8GB左右。因爲每一個雲平臺提供的配置都不相同(騰訊雲的內存和磁盤比例是限定的,UCloud的內存沒有8G等等),我在三個雲平臺上分別申請了以下配置的雲數據庫進行性能測試:
因爲實際狀況下,雲數據庫通常是經過雲服務器進行訪問的,所以我在這3個平臺分別申請了配置差很少的雲主機,在上面運行性能測試。我申請的雲主機的操做系統都是64位CentOS 6.5,具體的配置以下:
如今比較流行的測試數據庫工具是sysbench,爲了和實際使用的狀況吻合,我對sysbench作了參數上的修改。
通常來講,讀操做要遠遠高於寫操做,而且有不少操做是須要範圍查找和排序的,因此我在測試中提升了讀操做的比例,特別是提升了範圍查找和排序的比重。
同時,對於寫操做,稍微提升了update操做的比例。最終運行的測試中,每個事務的讀操做和寫操做的比例是6:1左右。爲了模擬項目啓動以後的場景,個人sysbench測試集的數據量是總共20張表,每張表200萬行數據,開啓32個線程,並行向DB發送事務請求,共運行30分鐘。下面是我觀察到的結果:
把這個測試結果作成圖表是這個結果:
這個性能測試結果大大出乎個人意料,雖然UCloud的DB界面看上去和阿里雲和騰訊雲相比比較樸實,產品介紹中也介紹的相對簡單,可是,性能上的優點讓我吃驚。說實話,本身測試以前,我沒想到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在線管理工具很強大,就是創建DB的時候比較麻煩,仍是要去界面上申請創建DB,價格較貴。
騰訊雲雖然沒有阿里雲的RDS作的那麼完善,也還算易用。他們使用PHPMyAdmin來管理數據庫,對於熟練這套工具的開發人員可能比較容易上手。價格較便宜。
UCloud雲數據庫測出的TPS和QPS性能遠高於業內平均水平。並且產品易用性好,價格適中。
綜上所述,性價比最高的雲數據庫是UCloud的UDB。
額外再提一句,對於名列在程序員最討厭兩件事之一的「寫文檔」,在查看3個廠商的DB產品介紹時,感受阿里雲和騰訊雲的產品介紹作的很好,裏面有各類解決方案的架構,很是貼心。並且雲數據庫和雲主機自建DB的區別也講得很直觀;而UCloud的UDB介紹比較簡單,還須要進一步提升。
以上。本文僅表明我的觀點,若有意見和建議,歡迎探討。
緩存
--安全
轉載請註明出自 https://www.felix021.com/blog/read.php?2163 ,如是轉載文則註明原出處,謝謝:)服務器
https://www.felix021.com/blog/read.php?2163#blogcomment2606架構