多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > Netflix公布Cassandra新性能:基于AWS的百萬次寫入每秒

Netflix公布Cassandra新性能:基于AWS的百萬次寫入每秒

來源:程序員人生   發(fā)布時間:2014-09-24 19:36:28 閱讀次數(shù):3835次

【編者按】盤點AWS生態(tài)圈,Netflix無疑是其最有價值用戶之一――在公布了大量基于AWS開源工具及調(diào)優(yōu)的同時,還發(fā)表了多個AWS環(huán)境下高價值的基準(zhǔn)測試。近日,Netflix在更貼近現(xiàn)在生產(chǎn)環(huán)境下重測了Cassandra性能。


免費訂閱“CSDN大數(shù)據(jù)”微信公眾號,實時了解最新的大數(shù)據(jù)進(jìn)展!

CSDN大數(shù)據(jù),專注大數(shù)據(jù)資訊、技術(shù)和經(jīng)驗的分享和討論,提供Hadoop、Spark、Imapala、Storm、HBase、MongoDB、Solr、機器學(xué)習(xí)、智能算法等相關(guān)大數(shù)據(jù)觀點,大數(shù)據(jù)技術(shù),大數(shù)據(jù)平臺,大數(shù)據(jù)實踐,大數(shù)據(jù)產(chǎn)業(yè)資訊等服務(wù)。


以下為譯文:

在2011年11月發(fā)表的文章“ NetFlix測試Cassandra――每秒百萬次寫入”中我們展示了Cassandra (C*)如何在集群節(jié)點增加時實現(xiàn)性能線性增長。隨著新型EC2實例類型的產(chǎn)生,我們決定重做一次性能測試,與之前帖子不同,這次的重心不是C*可擴展性,而是量化這些新實例的性能指標(biāo)。下面是此次測試的詳細(xì)信息及結(jié)果。

節(jié)點數(shù)量,軟件版本及配置信息

C*集群

此次測試的C*集群運行于Datastax 3.2.5企業(yè)版,C*版本為1.2.15.1,共有285個節(jié)點。實例類型為i2.xlarge器,運行于Heap為12GB的JVM 1.7.40_b43之上。使用的OS為Ubuntu 12.04 LTS。數(shù)據(jù)與日志使用相同的EXT3格式掛載文件。

盡管上次測試使用了較高規(guī)格的m1.xlarge服務(wù)器,此次測試的吞吐量結(jié)果依然與上次持平,而且選擇(支持SSD)i2.xlarge規(guī)格服務(wù)器更加貼近現(xiàn)實用例,能更好的展示其吞吐量與延遲。

完整的schema如下:

create keyspace Keyspace1
 with placement_strategy = ‘NetworkTopologyStrategy’
 and strategy_options = {us-east : 3
 and durable_writes = true;
use Keyspace1;
create column family Standard1
 with column_type = ‘Standard’
 and comparator = ‘AsciiType’
 and default_validation_class = ‘BytesType’
 and key_validation_class = ‘BytesType’
 and read_repair_chance = 0.1
 and dclocal_read_repair_chance = 0.0
 and populate_io_cache_on_flush = false
 and gc_grace = 864000
 and min_compaction_threshold = 999999
 and max_compaction_threshold = 999999
 and replicate_on_write = true
 and compaction_strategy = ‘org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy’
 and caching = ‘KEYS_ONLY’
 and column_metadata = [
 {column_name : 'C4',
 validation_class : BytesType},
 {column_name : 'C3',
 validation_class : BytesType},
 {column_name : 'C2',
 validation_class : BytesType},
 {column_name : 'C0',
 validation_class : BytesType},
 {column_name : 'C1',
 validation_class : BytesType}]
 and compression_options = {‘sstable_compression’ : ”};

請注意到這里的min_compaction_threshold和max_compaction_threshold值很高,盡管在實際產(chǎn)品中不可能使用完全一致的數(shù)據(jù),但也能實際反映我們所想掌握的數(shù)據(jù)。

客戶端

客戶端應(yīng)用程序使用Cassandra Stress,有60個客戶端節(jié)點,實例類型為r3.xlarge,為之前m2.4xlarge規(guī)格實例數(shù)量的一半,價格也是之前的一半,但依然能夠推動所需負(fù)載(使用線程低于40%)并達(dá)到與之前相同的吞吐量。客戶端運行在基于Ubuntu 12.04 LTS系統(tǒng)的JVM 1.7.40_b43之上。

網(wǎng)絡(luò)拓?fù)?/b>

Netflix的Cassandra集群有3個副本,部署在3個不同的可用區(qū)域(Availability Zones,即AZ)。這樣,如果其中一個AZ斷電,余下的2個副本依然可以繼續(xù)工作。

之前帖子里所有的客戶端都部署同一個AZ中,這次的改變遵從實際產(chǎn)品都部署在三個不同AZ的真實應(yīng)用場景。客戶端請求一般交于相同AZ的C*節(jié)點,我們稱之為zone-aware連接,這一特征被構(gòu)建到Netflix C* Java客戶端Astyanax中。Astyanax客戶端通過查詢記錄信息向相應(yīng)實例服務(wù)端發(fā)送讀寫請求。盡管C*協(xié)調(diào)器能夠?qū)崿F(xiàn)所有請求,但當(dāng)實例不在副本集中的情況發(fā)生時,則需要一個額外的網(wǎng)絡(luò)躍點,即token-aware請求。

此次測試使用Cassandra Stress,因此不需要token-aware請求。而通過一些簡單的grep和awk-fu,我們可以得知此次測試屬于zone-aware連接范疇,是網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)里比較典型的實際產(chǎn)品案例。


延遲及吞吐量測量

我們已經(jīng)文檔化了使用Priam完成令牌任務(wù)、備份和存儲的方法。Priam內(nèi)部版本添加了一些額外功能,我們使用Priam協(xié)助收集C* JMX自動測量結(jié)果并發(fā)送到分析平臺Atlas, 此功能將在未來幾周添加至Priam 開源版本中。

以下是用于測量延遲與吞吐量的JMX屬性:

延遲

  • AVG & 95% ile協(xié)調(diào)延遲
  • 讀。StorageProxyMBean.getRecentReadLatencyHistogramMicros() 提供可計算AVG & 95%ile 的數(shù)組
  • 寫。StorageProxyMBean.getRecentWriteLatencyHistogramMicros()提供可計算AVG & 95%ile 的數(shù)組

吞吐量

  • 協(xié)調(diào)器操作數(shù)量
  • 讀。StorageProxyMBean.getReadOperations()
  • 寫。StorageProxyMBean.getWriteOperations()

測試

我執(zhí)行了以下4組測試:

  1. CL One全寫入測試
  2. CL Quorum全寫入測試
  3. CL One讀寫綜合測試
  4. CL Quorum讀寫綜合測

100%寫入

與原帖測試不同,此次測試展示了持久性大于每秒100萬次寫入的用例。現(xiàn)實中只寫入的應(yīng)用程序很少,這種類型的應(yīng)用要么是遙測系統(tǒng)要么是物聯(lián)網(wǎng)應(yīng)用,其相關(guān)測試數(shù)據(jù)被輸入BI系統(tǒng)進(jìn)行分析。

CL One

與原帖測試相似,此次測試運行在CL One上。其平均延遲略高于5毫秒,第95百分位為10毫秒


每個客戶節(jié)點都運行如下Cassandra Stress命令:

cassandra-stress -d [list of C* IPs] -t 120 -r -p 7102 -n 1000000000  -k -f [path to log] -o INSERT

CL LOCAL_QUORUM

為了保證用例讀入的高一致性,這次我們測試了運行于LOCAL_QUORUM CL上吞吐量大于每秒百萬次寫入的用例。每秒100萬次寫入吞吐量平均延遲低于6毫秒,第95百分位為17毫秒


每個客戶節(jié)點都運行如下Cassandra Stress命令:

cassandra-stress -d [list of C* IPs] -t 120 -r -p 7102 -e LOCAL_QUORUM -n 1000000000 -k -f [path to log] -o INSERT

綜合測試――10%寫入90%讀入

每秒100萬次寫入只是一個醒目的標(biāo)題,大多數(shù)應(yīng)用程序都是讀寫混合的。在對Netflix主要應(yīng)用程序調(diào)研之后,我決定做一個10%寫入90%讀入的綜合測試,這一混合測試占用總線程的10%用于寫入90%用于讀取。這雖然不是實際應(yīng)用程序的真實復(fù)現(xiàn),但也能很好的測量數(shù)據(jù)擁塞時集群吞吐量及延遲

CL One

使用CL One配備時,C*實現(xiàn)了最高的吞吐量及可用性,開發(fā)人員需要接受其結(jié)果的一致性,并模仿這一范例設(shè)計他們的應(yīng)用程序。

  • 寫入吞吐量大于每秒20萬次寫入,平均延遲大約為1.25毫秒,第95%百分位為2.5毫秒。
  • 讀出吞吐量大約為每秒90萬次讀出,平均延遲2毫秒,第95%百分位為7.5毫秒。



每個客戶節(jié)點都運行如下Cassandra Stress命令:

cassandra-stress -d $cCassList -t&nbsp;30&nbsp;-r -p&nbsp;7102&nbsp;-e LOCAL_QUORUM -n&nbsp;1000000000&nbsp;-k -f /data/stressor/stressor.log -o INSERT<br>cassandra-stress -d $cCassList -t&nbsp;270&nbsp;-r -p&nbsp;7102&nbsp;-e LOCAL_QUORUM -n&nbsp;1000000000&nbsp;-k -f /data/stressor/stressor.log -o READ

CL LOCAL_QUORUM

大多數(shù)用C*開發(fā)的應(yīng)用程序都將默認(rèn)為CL Quorum讀寫,這為其相關(guān)開發(fā)人員進(jìn)入分布式數(shù)據(jù)庫系統(tǒng)提供了機會,也避免了解決應(yīng)用程序最終一致性的難題。

  • 寫入吞吐量小于每秒20萬次寫入,平均延遲大約為1.75毫秒,第95%百分位為20毫秒。
  • 讀出吞吐量大約為每秒60萬次讀出,平均延遲3.4毫秒,第95%百分位為35毫秒。



每個客戶節(jié)點都運行如下Cassandra Stress命令:

cassandra-stress -d $cCassList -t&nbsp;30&nbsp;-r -p&nbsp;7102&nbsp;-e LOCAL_QUORUM -n&nbsp;1000000000&nbsp;-k -f [path to log] -o INSERT<br>cassandra-stress -d $cCassList -t&nbsp;270&nbsp;-r -p&nbsp;7102&nbsp;-e LOCAL_QUORUM -n&nbsp;1000000000&nbsp;-k -f [path to log] -o READ

費用

這次測試的總開銷包括EC2實例費用和inter-zone網(wǎng)絡(luò)流量費用,我使用Boundary監(jiān)控C*網(wǎng)絡(luò)使用情況。


上圖顯示了可用服務(wù)區(qū)域間30Gbps的傳輸速度。

這里是執(zhí)行每秒100萬次寫入測試的費用:

      Instance Type / Item      

     Cost per Minute    

Count

     Total Price per Minute    

i2.xlarge

$0.0142

285

$4.047

r3.xlarge

$0.0058

60

$0.348

Inter-zone traffic

$0.01 per GB

3.75 GBps * 60 = 225GB per minute

$2.25

Total Cost per minute

$6.645

Total Cost per half Hour

$199.35

Total Cost per Hour

$398.7

結(jié)語

大多數(shù)企業(yè)可能不需要處理這么多數(shù)據(jù),這項測試很好的展示了新型AWS i2和r3實例類型的花費、延遲及吞吐量。每一個應(yīng)用程序都是不一樣的,你的情況也會不盡相同。

這次測試耗費了我一周的空閑時間,并不是一個詳盡的性能研究,我也沒有對C*系統(tǒng)或JVM作深入調(diào)研,你有可能會比我做的更好。如果你有興趣研究大規(guī)模分布式數(shù)據(jù)庫及性能提升,歡迎加入Netflix CDE組。

原文鏈接:Revisiting 1 Million Writes per second(翻譯/應(yīng)玲 責(zé)編/仲浩)

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲伊人久久大香线蕉影院 | 国产成人短视频在线观看免费 | 亚洲黄网址 | 欧美成人看片一区二区三区 | 麻豆网址在线观看 | 羞羞在线观看 | 狠狠涩| 爱呦视频在线播放网址 | 小毛片网站 | 性xxxxx免费视频播放 | 波多野结衣在线中文字幕 | 日韩黄色a级片 | 伊人免费 | 小说 都市 欧美 亚洲 | 叼嘿免费 | 欧美gv免费video在线观看 | 免费成年人在线观看视频 | 亚洲狠狠狠一区二区三区 | 久草在线观看福利 | 一级做a爱片就在线看 | 亚洲成人观看 | 亚洲国产情侣一区二区三区 | 最近的中文字幕在线国语 | 最近最新中文字幕免费1 | 日韩 欧美 自拍 | 无人区一区二区三区乱码 | 久久久久久久亚洲精品一区 | freexxxx性特大另类ww | 秋霞午夜伦午夜高清福利片 | 一级淫片免费看 | 亚洲视频中文字幕在线 | 欧美午夜在线观看 | 国产精品欧美日韩一区二区 | 一级aaaaaa片毛片在线播放 | 中文字幕网站在线 | 小说区| 男人看片网站 | 亚洲国产精品欧美综合 | 中文字幕中韩乱码亚洲大片 | 免费看欧美毛片大片免费看 | 美女毛片视频 |