《如何根據(jù)性能選擇內(nèi)存NoSQL數(shù)據(jù)庫?》要點(diǎn):
本文介紹了如何根據(jù)性能選擇內(nèi)存NoSQL數(shù)據(jù)庫?,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
本文主要內(nèi)容是測試了不同NoSQL數(shù)據(jù)庫在測試工具YCSB中的表現(xiàn).我們選取了3款流行的內(nèi)存(in-memory)數(shù)據(jù)庫管理系統(tǒng):Redis,Tarantool 以及 CouchBase,還有緩存系統(tǒng)Memchached.Memchached雖然不屬于數(shù)據(jù)庫管理系統(tǒng)但常作為快速存儲(chǔ)系統(tǒng)使用.
測試環(huán)境由4臺(tái)在Microsoft Azure Cloud中的虛擬機(jī)組成的計(jì)算機(jī)組組成.這些虛擬機(jī)同屬于一個(gè)數(shù)據(jù)中心.nosql-1和nosql-2用作測試Tarantool和CouchBase,nosql-3和nosql-4用作測試Redis,Azure Redis Cache 以及 Memcached.這些機(jī)器都安裝和配置了相應(yīng)數(shù)據(jù)庫和測試項(xiàng)目.虛擬機(jī)的配置為4核A3 CPU,7GB RAM,120GB硬盤.
數(shù)據(jù)庫及設(shè)置
內(nèi)存數(shù)據(jù)庫管理系統(tǒng)會(huì)存儲(chǔ)所有在主內(nèi)存中的數(shù)據(jù)并在磁碟上進(jìn)行持續(xù)更新操作;透過日志記錄每個(gè)數(shù)據(jù)的修改以確保連貫性.由于是以append-only方式進(jìn)行日志寫入,因此它很少遇到瓶頸問題;讀取/寫入都不會(huì)造成頻繁的磁碟頭移動(dòng).
Redis在2009推出,目前的最新版本是3.0.5.我們這里使用的版本是3.0.4,以append-only(只附加)方式進(jìn)行數(shù)據(jù)管理,與其配合使用的是Microsoft Azure Redis Cache工具.
Tarantool是一款開源NoSQL數(shù)據(jù)庫管理系統(tǒng).我們使用的是Tarantool 1.6.7-126-gb35aff9,日志采用write-ahead(先寫)模式.Memcached是一款分布式內(nèi)存緩存系統(tǒng),這里使用是Memcached 1.4.14-0ubuntu9.
Couchbase Server是開源分布式NoSQL面向文檔數(shù)據(jù)庫,這里使用的版本是Couchbase 4.0.0-4047-1.
YCSB測試工具
Yahoo! Cloud Serving Benchmark(YCSB)是功能強(qiáng)大的NoSQL數(shù)據(jù)庫性能測試工具,它提供了6種主要的負(fù)載工作類型,以字母A到F來區(qū)分.
負(fù)載A負(fù)責(zé)更新操作,極值是50/50的讀寫操作,如用于進(jìn)行新近操作記錄.負(fù)載B負(fù)責(zé)讀取操作,極值是95/5的讀寫操作,如用于進(jìn)行圖片標(biāo)簽管理,多進(jìn)行標(biāo)簽讀取操作.負(fù)載C負(fù)載100%的讀取操作,如用于進(jìn)行用戶屬性獲取.負(fù)載D以先進(jìn)先出方式進(jìn)行插入操作,如用戶進(jìn)行最新數(shù)據(jù)讀取.負(fù)載E負(fù)責(zé)小范圍記錄讀取而不是單個(gè)記錄讀取,如線程會(huì)話.負(fù)載F負(fù)責(zé)記錄的讀取,修改和寫入,如用戶信息管理.
我們對(duì)配置文件作了兩處參數(shù)修改:數(shù)據(jù)條目recordcount設(shè)為200000,操作條目operationcount設(shè)為5000000.YCSB是多線程工具,我們將以8, 16, 32, 64, 128 及256 線程來進(jìn)行測試.詳細(xì)的測試腳本請(qǐng)點(diǎn)擊這里進(jìn)行下載.
下列測試結(jié)果圖以顏色進(jìn)行測試對(duì)象區(qū)分,
更多圖片請(qǐng)點(diǎn)擊[這里]查看.
結(jié)論
Tarantool在所有負(fù)載類型測試中皆取得了最優(yōu)成績.它創(chuàng)建了一個(gè)無鎖內(nèi)存引擎,以協(xié)同多任務(wù)方式進(jìn)行操作而不是互斥或并行處理方式.根據(jù)以下性能圖表現(xiàn),我們的結(jié)論是Tarantool的高吞吐量處理是其最大優(yōu)勢(shì)之一.因此在多數(shù)場合下,Tarantool是用戶的最佳選擇.
譯者/伍昆,現(xiàn)就職于必維集團(tuán)IT信息部,擔(dān)任IT運(yùn)營主管一職.熱衷于計(jì)算機(jī)編程和數(shù)據(jù)庫技術(shù).
(責(zé)編/夏夢(mèng)竹)
維易PHP培訓(xùn)學(xué)院每天發(fā)布《如何根據(jù)性能選擇內(nèi)存NoSQL數(shù)據(jù)庫?》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/9243.html