亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flink使用RocksDB 和Gemini 的性能對比實驗分析是怎樣的

發布時間:2022-01-04 16:13:59 來源:億速云 閱讀:202 作者:柒染 欄目:大數據

今天就跟大家聊聊有關Flink使用RocksDB 和Gemini 的性能對比實驗分析是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

摘要:我們將對 RocksDB、Heap 和 Gemini 在相同場景下進行壓測,并對其資源消耗進行對比。測試的 Flink 內核版本為 1.10.0。

微博機器學習平臺使用 Flink 實現多流 join 來生成在線機器學習需要的樣本。時間窗口內的數據會被緩存到 state 里,且 state 訪問的延遲通常決定了作業的性能。開源 Flink 的狀態存儲主要包括 RocksDB 和 Heap 兩種,而在去年的 Flink Forward 大會上我們了解到阿里云 VVP 產品自研了一款更高性能的狀態存儲插件 Gemini,并對其進行了測試和試用。

測試場景


我們使用真實的樣本拼接業務作為測試場景,通過將多個流的數據union后對指定key做聚合(keyby),在聚合函數里從各個流中獲取相應的字段,并將需要的字段重新組合成一個新的對象存儲到 value state 里。這里對每個新的對象都定義一個 timer,用 timer 功能來替代 TimeWindow,窗口結束時將數據發射到下游算子。使用 timer 功能的主要原因是 timer 更靈活,更方便用戶自定義,在平臺的實用性,可擴展性上表現更好。
MemoryStateBackend vs. RocksDBStateBackend

首先需要說明的是,MemoryStateBackend 不建議在線上使用,這里主要是通過測試量化一下使用 Heap 存儲 state 的資源消耗。
 
我們在測試中對 checkpoint 的配置如下:

CheckpointInterval:10分鐘CheckpointingMode: EXACTLY_ONCECheckpointTimeout:3分鐘

同時對 RocksDB 增加了如下配置:

setCompressionType:LZ4_COMPRESSIONsetTargetFileSizeBase:128 * 1024 * 1024setMinWriteBufferNumberToMerge:3setMaxWriteBufferNumber:4setWriteBufferSize:1GsetBlockCacheSize:10GsetBlockSize:4 * 1024setFilter:BloomFilter(10, false)

測試發現,相同作業處理相同的數據量時,使用 MemoryStateBackend 的作業吞吐和 RocksDB 類似(輸入 qps 為 30 萬,聚合后輸出 qps 為 2 萬),但所需要的內存(taskmanager.heap.mb)是 RocksDB 的 8 倍,對應的機器資源是 RocksDB 的 2 倍。

Flink使用RocksDB 和Gemini 的性能對比實驗分析是怎樣的


由此我們得出以下結論:

  • 使用 MemoryStateBackend 需要增加非常多的 Heap 空間用于存儲窗口內的狀態數據(樣本),相對于把數據放到磁盤的優點是處理性能非常好,但缺點很明顯:由于 Java 對象在內存的存儲效率不高,GB 級別的內存只能存儲百兆級別的真實物理數據,所以會有很大的內存開銷,且 JVM 大堆 GC 停機時間相對較高,影響作業整體穩定,另外遇到熱點事件會有 OOM 風險。

  • 使用 RocksDB 則需要較少的 Heap 空間即可,加大 Native 區域用于讀緩存,結合 RocksDB 的高效磁盤讀寫策略仍然有很好的性能表現。

GeminiStateBackend vs. RocksDBStateBackend 

可以通過如下方式,在 Ververica Platform 產品中指定使用 Gemini state backend:

state.backend=org.apache.flink.runtime.state.gemini.GeminiStateBackendFactory

同時我們對 Gemini 進行了如下基礎配置:

// 指定Gemini存儲時的本地目錄kubernetes.taskmanager.replace-with-subdirs.conf-keys= state.backend.gemini.local.dirstate.backend.gemini.local.dir=/mnt/disk3/state,/mnt/disk5/state// 指定Gemini的page壓縮格式(page是Gemini存儲的最小物理單元)state.backend.gemini.compression.in.page=Lz4// 指定Gemini允許使用的內存占比state.backend.gemini.heap.rate=0.7// 指定Gemini的單個存儲文件大小state.backend.gemini.log.structure.file.size=134217728// 指定Gemini的工作線程數state.backend.gemini.region.thread.num=8

機器配置


Flink使用RocksDB 和Gemini 的性能對比實驗分析是怎樣的


作業使用資源對應參數


Flink使用RocksDB 和Gemini 的性能對比實驗分析是怎樣的


內存相關參數


Flink使用RocksDB 和Gemini 的性能對比實驗分析是怎樣的


對比結果


Flink使用RocksDB 和Gemini 的性能對比實驗分析是怎樣的


Note:全量的樣本拼接負載使用 16 臺機器無法完全服務,因此我們通過對數據進行不同比例的抽樣來進行壓測。當出現反壓時,我們認為作業已經達到性能瓶頸。

由以上對比可以看出,在數據、作業處理邏輯、硬件配置等都相同的前提下,使用 Gemini 成功處理的數據量是 RocksDB 的 2.4 倍(17280 vs 7200 條/s)。同時通過硬件資源消耗的對比可知,RocksDB 更快達到磁盤 IO 瓶頸,而 Gemini 則具備更高的內存和 CPU 利用率。

看完上述內容,你們對Flink使用RocksDB 和Gemini 的性能對比實驗分析是怎樣的有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临夏市| 凭祥市| 兴业县| 奉节县| 中卫市| 西和县| 兰考县| 尉犁县| 桐城市| 花垣县| 清水县| 关岭| 灵丘县| 洪泽县| 东阿县| 府谷县| 武威市| 雅安市| 米易县| 田东县| 瑞昌市| 铜山县| 秦皇岛市| 曲沃县| 大名县| 乐至县| 桦南县| 社会| 广东省| 大洼县| 丰都县| 四子王旗| 防城港市| 安新县| 华安县| 北川| 喀喇沁旗| 玉山县| 海晏县| 鲜城| 大同市|