亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于時間序列模型的Kafka 系統(tǒng)智能化管理方法①

        2023-11-20 08:36:52周宇澤司鵬搏張延華楊睿哲
        高技術(shù)通訊 2023年10期
        關(guān)鍵詞:交易量生產(chǎn)者個數(shù)

        周宇澤 司鵬搏 張延華 李 萌 楊睿哲

        (北京工業(yè)大學(xué)信息學(xué)部 北京 100124)

        0 引言

        近年來,隨著互聯(lián)網(wǎng)普及程度的不斷提高和通信技術(shù)的高速發(fā)展,信息數(shù)據(jù)的安全問題引起了社會的廣泛關(guān)注。區(qū)塊鏈有著高度去中心化、不可篡改的特點(diǎn),具有很高的安全性。目前,在各個領(lǐng)域中都進(jìn)行著區(qū)塊鏈的研究,例如車輛自組網(wǎng)(vehicle adhoc network,VANET)[1]、物聯(lián)網(wǎng)(Internet of Things,IoT)[2]、智慧城市[3]和云計(jì)算[4]等。共識算法幫助區(qū)塊鏈更好地完成節(jié)點(diǎn)間點(diǎn)對點(diǎn)通信、完成交易。比較有代表性的共識算法包括工作量證明(proof of work,PoW)[5]、權(quán)益證明(proof of stake,PoS)[6]、空間量證明(proof of space,PoSpace)[7]、實(shí)用拜占庭容錯(practical Byzantium is fault-tolerant,PBFT)[8]以及近些年來逐漸被人們所熟知的Kafka 共識算法。

        Kafka 是一個高性能的分布式消息發(fā)布和訂閱系統(tǒng)[9]。Kafka 中,Kafka Broker[9]指Kafka 集群的服務(wù)器節(jié)點(diǎn)[10],每個Kafka Broker 提供了名為主題的邏輯概念。主題[11]是存儲消息的邏輯概念,被認(rèn)為是消息的集合,同類型的消息會處于同一個主題中。生產(chǎn)者將消息以push 的形式發(fā)送到Kafka Broker,而消費(fèi)者從Kafka Broker 消費(fèi)消息的過程是pull,主動拉取數(shù)據(jù),完成共識。

        應(yīng)用Kafka 算法的區(qū)塊鏈系統(tǒng)經(jīng)常會面對海量交易等待處理的情況[12-13],大量交易集中在少數(shù)節(jié)點(diǎn)的情況,會導(dǎo)致系統(tǒng)性能下降[14]。針對Kafka 系統(tǒng)中的消費(fèi)者和分區(qū),文獻(xiàn)[15]和[16]分別提出消費(fèi)者/客戶端負(fù)載均衡方法和改進(jìn)型Partition 過載優(yōu)化,來解決吞吐速率下降、中央處理器(central processing unit,CPU)使用率過高等問題。文獻(xiàn)[17]提出基于抽樣的自適應(yīng)調(diào)優(yōu)方法,通過優(yōu)化生產(chǎn)者個數(shù)、緩存空間大小、消息大小、分區(qū)數(shù)等系統(tǒng)參數(shù)來提升系統(tǒng)吞吐速率并降低時延。先前的研究大多致力于從消費(fèi)者、分區(qū)和系統(tǒng)參數(shù)的角度,在算法和系統(tǒng)內(nèi)部添加機(jī)制來進(jìn)行優(yōu)化,但卻往往忽略了生產(chǎn)者。而生產(chǎn)者節(jié)點(diǎn)一般同時擔(dān)任排序節(jié)點(diǎn)[18]、背書節(jié)點(diǎn)[18]和提交節(jié)點(diǎn)[19]的責(zé)任。因此生產(chǎn)者需要執(zhí)行的進(jìn)程十分復(fù)雜多樣,大量數(shù)據(jù)集中在生產(chǎn)者的緩存區(qū)[20]中是Kafka 系統(tǒng)性能吞吐速率下降、時延上升甚至出現(xiàn)宕機(jī)情況的主要原因。因此從生產(chǎn)者的角度進(jìn)行系統(tǒng)優(yōu)化也是研究的重點(diǎn)。

        長短期記憶網(wǎng)絡(luò)(long short term memory,LSTM)模型[21]從本質(zhì)上講是循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的一種特定形式[22]。LSTM 模型以RNN 模型作為基礎(chǔ)模型,使用增加門限的方法來解決RNN 模型中的短期記憶信息持久性不夠高的問題。時間序列[23]分析是將某種現(xiàn)象某一個統(tǒng)計(jì)指標(biāo)在不同時間上的各個數(shù)值,按時間先后順序排列而形成的序列,旨在預(yù)測未來事件發(fā)展的趨勢和規(guī)律。相比其他網(wǎng)絡(luò),LSTM 的優(yōu)勢包括:輸入及輸出屬于時序數(shù)據(jù),并要求全局化處理;輸入和輸出的元素級別對應(yīng)的時間跨度大;數(shù)據(jù)長短適中。LSTM應(yīng)用的領(lǐng)域包括:文本生成、機(jī)器翻譯、語音識別、生成圖像描述、預(yù)測疾病、故障[24]和股票[25]等。

        本文結(jié)合區(qū)塊鏈節(jié)點(diǎn)的特點(diǎn),提出基于LSTM時間序列的系統(tǒng)管理方法,在不過多修改Kafka 算法內(nèi)部機(jī)制的條件下,使系統(tǒng)更加智能化。利用LSTM 時間序列模型可以勝任預(yù)測工作的特點(diǎn),根據(jù)系統(tǒng)之前接收到的交易量,預(yù)測下一時刻即將收到的交易量,動態(tài)調(diào)整生產(chǎn)者的個數(shù),既可以解決吞吐速率下降、時延上升等性能問題又不造成資源浪費(fèi),使系統(tǒng)資源利用處于相對合理區(qū)間。

        1 問題建模

        本節(jié)首先對問題及解決方案進(jìn)行分析建模,而后建立整體系統(tǒng)優(yōu)化模型。

        1.1 Kafka 模型

        目前常用的Kafka 系統(tǒng),以吞吐速率、時延、能耗、系統(tǒng)效率、使用率等指標(biāo)來衡量系統(tǒng)的性能和合理性。系統(tǒng)的總吞吐速率與生產(chǎn)者吞吐速率以及分區(qū)關(guān)系為

        sumt表示t時刻需要處理的總交易量:

        式中,Nat+Nbt+…+Nnt是t時刻各用戶向系統(tǒng)發(fā)送的交易量。

        其中,kt表示t時刻生產(chǎn)者數(shù)量,bm代表t時刻需要處理的單個消息大小,表示t時刻系統(tǒng)需要處理的消息總大小,Td表示時延。

        理想狀態(tài)下,每個生產(chǎn)者吞吐速率相等,由式(2)、(3)、(4)可得:

        生產(chǎn)者、消費(fèi)者、分區(qū)各占一部分系統(tǒng)存儲空間。一般理想狀態(tài)下,各生產(chǎn)者所占空間相等[25]。

        Ω代表機(jī)器(節(jié)點(diǎn))數(shù)量:

        一般情況下Ω≥kt>1,Cn表示副本數(shù)量,wt為權(quán)重系數(shù),Vmax表示生產(chǎn)者峰值生產(chǎn)速度。

        根據(jù)式(6),在理想系統(tǒng)狀態(tài)下,系統(tǒng)最大時延Td可表示為

        Et為每消耗單位能量處理的交易大小:

        其中,E為節(jié)點(diǎn)作為生產(chǎn)者時,每秒消耗的能量。

        Mt為生產(chǎn)者系統(tǒng)使用率:

        Wt為系統(tǒng)效率:

        其中,rt為比例系數(shù),代表t時刻系統(tǒng)可承受交易量范圍和用戶發(fā)送總交易量范圍之比。

        1.2 LSTM 時間序列模型

        找到生產(chǎn)者個數(shù)kt、用戶發(fā)送交易量sumt與各項(xiàng)性能、能耗及系統(tǒng)使用情況的關(guān)系后,如何確定生產(chǎn)者個數(shù)尤為重要。構(gòu)建預(yù)測模型,如圖1 所示。

        模型學(xué)習(xí)先前用戶發(fā)送的交易量,預(yù)測t時刻各用戶發(fā)送的交易量和系統(tǒng)需要處理的總交易量sumt。

        LSTM 模型主要包含了遺忘門、輸入門、輸出門與1 個細(xì)胞單元。細(xì)胞單元狀態(tài)可以控制信息傳遞給下一時刻。時間序列模型流程示意圖如圖2 所示。

        圖中,ct是細(xì)胞單元,從下方輸入ft、it、ot分別為遺忘門、輸入門、輸出門,用sigmoid 層表示。sumt為輸出,即預(yù)測到的交易總量。Nat-1,Nbt-1,…,Nnt-1為輸入,即上一時刻用戶發(fā)送交易量。ct-1為需要遺忘的對預(yù)測無用的數(shù)據(jù)。2 個tanh 層分別對應(yīng)細(xì)胞單元的輸入與輸出。

        1.3 LSTM 模型執(zhí)行步驟

        LSTM 結(jié)構(gòu)中使用了2 種激活函數(shù)[26],分別為sigmoid 函數(shù)與tanh 函數(shù),其表達(dá)式分別為

        第1 步?jīng)Q定遺忘細(xì)胞狀態(tài)中的哪些信息。

        遺忘門通過sigmoid 層來篩選,只有符合預(yù)期結(jié)果的信息可以通過細(xì)胞單元,根據(jù)上一時刻的輸出和當(dāng)前時刻的輸入產(chǎn)生一個0~1 之間的ft值,以此決定是否讓上一時刻學(xué)習(xí)到的用戶發(fā)送交易量信息通過或部分通過,0 表示完全舍棄,1 表示完全保留。

        其中,ft為σ網(wǎng)絡(luò)激活層,sumt-1為預(yù)測到上一時刻輸出的交易總量,Nat-1,Nbt-1,…,Nnt-1為上一時刻輸入的各用戶發(fā)送交易量,Wf為遺忘門權(quán)重,bf為遺忘門偏執(zhí)量。

        第2 步產(chǎn)生需要更新的信息。

        第2 步為2 個部分,第1 部分中輸入門通過sigmoid 層決定哪些信息用來更新候選值,第2 部分生成新的候選值?ct,并評估其保存至細(xì)胞狀態(tài)的可能性。通過tanh 層來執(zhí)行本部分,對輸入端進(jìn)行激活,對細(xì)胞單元執(zhí)行更新操作,將ct-1更新為ct。

        其中,Wi、Wc為權(quán)重,bi、bc為偏執(zhí)量。

        對舊的細(xì)胞狀態(tài)進(jìn)行更新,通過遺忘門消除不需要的信息,然后得出候選值。

        第3 步?jīng)Q定模型輸出。

        通過sigmoid 層來得到一個初始輸出,而后縮放ct的值至-1~1 之間,再與得到的輸出進(jìn)行逐對相乘,得到最終的輸出。

        sigmoid 函數(shù)的輸出不考慮先前時刻學(xué)到的信息,tanh 函數(shù)對先前學(xué)到信息的壓縮處理,起穩(wěn)定數(shù)值作用,智能化系統(tǒng)整體模型如圖3 所示。

        本文構(gòu)建的生產(chǎn)者個數(shù)決策模型,學(xué)習(xí)前(t-1) s用戶發(fā)送交易的規(guī)律,通過時間序列模型LSTM 算法使用仍然適用于本文模型的sigmoid 函數(shù)與tanh函數(shù)完成預(yù)測第ts 用戶發(fā)送的交易量的工作,輸出下一時刻選定的生產(chǎn)者個數(shù),對生產(chǎn)者個數(shù)進(jìn)行動態(tài)調(diào)整,在保證系統(tǒng)性能的情況下,達(dá)到降低能耗、合理利用系統(tǒng)資源的要求。

        2 仿真實(shí)驗(yàn)

        仿真環(huán)境建立在英特爾11th Gen Intel(R) Core(TM)i5-1155G7@2.50 GHz 處理器。機(jī)帶RAM 16.0 GB 64 位操作。軟件環(huán)境是在Win 10 操作系統(tǒng)下運(yùn)行Python 3.6、Matlab 2022 以及Jupyter Lab 平臺。

        分別設(shè)置模型學(xué)習(xí)率為0.01、0.05,并結(jié)合實(shí)際應(yīng)用中Kafka 系統(tǒng)一般接收到的交易量,將樣本數(shù)量設(shè)置為50 個、100 個、150 個進(jìn)行對比實(shí)驗(yàn)。

        進(jìn)行500 回合的對比實(shí)驗(yàn)訓(xùn)練時,由圖4 中十字標(biāo)記曲線可知,當(dāng)學(xué)習(xí)率設(shè)定為0.05、樣本數(shù)量確定為100 個時,系統(tǒng)誤差最小,最低可降到0.0124,收斂于0.002 左右。因此LSTM 模型學(xué)習(xí)率最終確定為0.05,樣本數(shù)量選定為100,如表1 所示。

        表1 LSTM 參數(shù)設(shè)置

        圖4 模型參數(shù)對比

        后續(xù)實(shí)驗(yàn)中,基于時間序列LSTM 算法的Kafka優(yōu)化方法設(shè)置詳細(xì)步驟如算法1 及圖5 所示。

        圖5 優(yōu)化方法實(shí)驗(yàn)設(shè)置

        交易數(shù)據(jù)集為隨機(jī)生成,總體處于1~100 個,通過Excel 導(dǎo)入模型。模型參數(shù)設(shè)置如表2 所示。

        表2 模型參數(shù)設(shè)置

        時間序列模型執(zhí)行步驟如下所示。

        第2 節(jié)公式中n取1、2、3,分別設(shè)定3 個序列模型。Nat、Nbt、Nct分別對應(yīng)成員1、成員2、成員3在第ts 預(yù)測發(fā)送的交易量。通過總交易量所處區(qū)間,決定生產(chǎn)者個數(shù)。根據(jù)第2 節(jié)中公式可得LSTM時間序列模型輸出與Kafka 系統(tǒng)性能關(guān)系,如表3所示。

        表3 LSTM 輸出與Kafka 性能的關(guān)系

        使用MinMaxScaler 數(shù)據(jù)歸一化方法:

        其中,X.min(axis=0) 表示每列值的最小值組成的向量,同理X.max(axis=0) 表示每列值的最大值組成的向量。max 表示映射到區(qū)間的最大值,默認(rèn)為1。min 表示映射到區(qū)間的最小值,默認(rèn)為0。Xstd是標(biāo)準(zhǔn)化化結(jié)果,Xsvaled是歸一化結(jié)果。使用均方誤差(mean square error,MSE)作為誤差評價(jià)指標(biāo):

        式中,N為樣本數(shù)量,Yi是為真實(shí)值,為模型預(yù)測值。優(yōu)化器選擇適應(yīng)性矩估計(jì)(adaptive moment estimation,ADAM)的方法,對損失函數(shù)進(jìn)行優(yōu)化。

        2.1 LSTM 預(yù)測

        使用數(shù)據(jù)集分別進(jìn)行500、1000、3000、10 000 次訓(xùn)練。當(dāng)訓(xùn)練次數(shù)達(dá)到10 000 次時,誤差率曲線在0.025 以下收斂,最小可以達(dá)到(8.2807e)-4,損失函數(shù)如圖6 所示。

        圖6 誤差曲線

        訓(xùn)練后得到預(yù)測下一時刻各用戶發(fā)送的交易量,并根據(jù)交易總量決定k取值。結(jié)果如圖7~9 所示,在折線圖上方顯示系統(tǒng)經(jīng)過預(yù)測后選定的生產(chǎn)者個數(shù)。

        圖8 預(yù)測圖2

        圖9 預(yù)測圖3

        實(shí)驗(yàn)中會出現(xiàn)k=1、k=2 和k=3 這3 種結(jié)果。圖中顯示選定的k值,數(shù)據(jù)中包含需要通過遺忘門消除的對預(yù)測無用數(shù)據(jù)。用戶1數(shù)據(jù)波動大,分布不均勻;用戶2 數(shù)據(jù)基本均勻分布在小范圍內(nèi);用戶3 數(shù)據(jù)波動處于用戶1 與用戶2 之間,分布基本均勻。通過圖7~9 可以看出,對預(yù)測結(jié)果影響最大的是用戶1,用戶2 與用戶3 對結(jié)果影響不明顯。

        2.2 性能對比驗(yàn)證

        根據(jù)前述公式及表1 可知時間序列模型預(yù)測的消息總量、輸出的生產(chǎn)者個數(shù)和Kafka 系統(tǒng)性能的關(guān)系,根據(jù)時間序列預(yù)測結(jié)果及輸出進(jìn)行Kafka 系統(tǒng)性能仿真實(shí)驗(yàn)。仿真實(shí)驗(yàn)按照預(yù)測模型,為k賦予了1、2、3 取值,為系統(tǒng)吞吐速率,Td為時延。

        設(shè)定數(shù)據(jù)的壓縮比c設(shè)為0.8,區(qū)塊鏈中使用Kafka 共識的機(jī)器數(shù)量Ω設(shè)為5,生產(chǎn)者節(jié)點(diǎn)的個數(shù)k分別取1、2、3。副本數(shù)量Cn設(shè)為2,權(quán)重系數(shù)wt設(shè)為2,系統(tǒng)生產(chǎn)者緩存區(qū)內(nèi)需要處理的交易總大小設(shè)為0~110 kB,sumt為預(yù)測到的總交易量。處理交易量與時延的關(guān)系,如圖10 所示。

        圖10 交易量與時延的關(guān)系

        由圖10 可知,隨著生產(chǎn)者同時需要處理的交易量的提升,系統(tǒng)時延也在逐步提高。通過使用2 種激活函數(shù)的LSTM 模型使生產(chǎn)者個數(shù)的增加,可以延緩系統(tǒng)時延的提高。當(dāng)緩存區(qū)內(nèi)需處理交易大小超過緩存區(qū)最大容量,引發(fā)系統(tǒng)宕機(jī),時延圖像停止變化。隨著生產(chǎn)者個數(shù)的提升,系統(tǒng)承受能力顯著上升。

        設(shè)定分區(qū)數(shù)P為20,k分別取1、2、3,數(shù)據(jù)壓縮比c設(shè)為0.8,每個生產(chǎn)者最大緩存空間M設(shè)為32 kB。需要處理的交易總大小設(shè)為0~110 kB,得出生產(chǎn)者緩存區(qū)處理交易量和系統(tǒng)吞吐速率的關(guān)系,如圖11 所示。

        圖11 交易量與吞吐速率關(guān)系圖

        由圖11 可知,使用包含2 種激活函數(shù)的LSTM模型后,吞吐速率隨著生產(chǎn)者個數(shù)增加而增加。當(dāng)交易量小于最大緩存容量時,各曲線變化不大,只有輕微的波動。當(dāng)需要處理的交易量大于生產(chǎn)者緩存空間容量時,引發(fā)系統(tǒng)宕機(jī),吞吐速率歸零。隨著生產(chǎn)者個數(shù)的增多,最大容量提高,系統(tǒng)承受能力顯著上升。

        使用LSTM 時間序列模型進(jìn)行優(yōu)化后,根據(jù)預(yù)測到的交易量增加了生產(chǎn)者個數(shù)。由圖11、圖12對比實(shí)驗(yàn)可知,提升生產(chǎn)者個數(shù)確實(shí)可以提升系統(tǒng)性能,sigmoid 函數(shù)與tanh 函數(shù)2 種激活函數(shù)同樣適用于本文模型,優(yōu)化方向正確、方法有效。

        圖12 時延對比

        2.3 算法對比實(shí)驗(yàn)

        為驗(yàn)證本文方法性能,分別采取Kafka 原算法、本文方法、Kafka 中改進(jìn)型Partition 過載優(yōu)化算法[16]和基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法[17]4 種方法相比較。

        設(shè)Kafka 原算法系統(tǒng)生產(chǎn)者個數(shù)k=1,每個交易大小設(shè)為1.6 kB,交易量范圍為0~150 個,副本數(shù)量Cn設(shè)為2,權(quán)重系數(shù)wt設(shè)為2,設(shè)定分區(qū)數(shù)P為20,數(shù)據(jù)壓縮比c設(shè)為0.8,每個生產(chǎn)者最大緩存空間M設(shè)為32 kB。Kafka 中改進(jìn)型Partition 過載優(yōu)化算法通過優(yōu)化分區(qū)數(shù)量來提升吞吐速率,因此該方法分區(qū)數(shù)量P1設(shè)為25,生產(chǎn)者個數(shù)k=1,其余參數(shù)與前文一致。

        根據(jù)時間序列預(yù)測模型設(shè)定為

        如圖12 所示,隨著交易量增加,Kafka 原算法、改進(jìn)型Partition 過載優(yōu)化算法的時延曲線在本圖中保持重合,且上升較快、系統(tǒng)承受力差,分區(qū)數(shù)提升未對時延產(chǎn)生明顯影響?;诔闃拥腒afka 自適應(yīng)調(diào)優(yōu)方法將生者個數(shù)設(shè)定為3 個時,系統(tǒng)時延低、承受能力強(qiáng)。本文方法通過預(yù)測接收到的交易量,動態(tài)生產(chǎn)者個數(shù),隨著接受到的交易量增多而增加生產(chǎn)者個數(shù),可以有效降低時延且系統(tǒng)承受力與基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法持平。

        如圖13 所示,Kafka 原算法的吞吐速率較低、系統(tǒng)承受力差。改進(jìn)型Partition 過載優(yōu)化算法在一般情況下不對系統(tǒng)配置進(jìn)行修改,僅在系統(tǒng)檢測到即將過載時,通過提升分區(qū)數(shù)小幅提高了最大吞吐速率和系統(tǒng)承受力?;诔闃拥腒afka 自適應(yīng)調(diào)優(yōu)方法將生者個數(shù)設(shè)定為3 個時,吞吐速率明顯提升。本文方法通過預(yù)測接收到的交易量,隨著接受到的交易量增多而增加生產(chǎn)者個數(shù),可以有效提高吞吐速率和系統(tǒng)承受力。本文方法最高吞吐速率與基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法持平。

        圖13 系統(tǒng)最大吞吐速率對比

        根據(jù)式(9)及圖14 中數(shù)據(jù)計(jì)算k不同取值時的平均吞吐速率。當(dāng)k=1 時平均吞吐速率為52 kB/s,k=2 時平均吞吐速率為108 kB/s,k=3 時平均吞吐速率為151 kB/s,改進(jìn)型Partition 過載優(yōu)化算法最大吞吐速率為65 kB/s。單個生產(chǎn)者緩存空間仍設(shè)為32 kB。

        圖14 生產(chǎn)者平均剩余緩存空間

        由圖14 可知,根據(jù)預(yù)測下一時刻交易量,調(diào)整生產(chǎn)者個數(shù)以及提升分區(qū)數(shù),均可以通過提升吞吐速率有效避免緩存空間過低和耗盡的情況。當(dāng)預(yù)測到下一時刻交易過多可能導(dǎo)致緩存空間即將耗盡時,提升生產(chǎn)者個數(shù),對交易進(jìn)行分流,防止消息集中在某一個節(jié)點(diǎn),生產(chǎn)者個數(shù)越多,緩存空間剩余越多。

        在實(shí)際使用中,系統(tǒng)能量損耗是必須考慮的方面,提升生產(chǎn)者個數(shù)固然可以提高系統(tǒng)性能,但需要處理的交易量較少時,多個節(jié)點(diǎn)執(zhí)行生產(chǎn)者功能會造成能源浪費(fèi)。設(shè)每臺機(jī)器作為生產(chǎn)者時,每秒消耗能量65 J,每個交易大小設(shè)為1.6 kB。測試各方法所在系統(tǒng)的可接受用戶發(fā)送消息量和消耗單位能量可處理的交易大小情況。

        由圖15 可知,原Kafka 算法在接收到的交易量較少時,消耗單位能量所處理的交易大小與本文方法持平,但其交易承受范圍為0~52 個。改進(jìn)型Partition 過載優(yōu)化算法消耗單位能量所處理的交易大小先持平而后略高于于本方法,但其交易承受范圍為0~60 區(qū)間?;诔闃拥腒afka 自適應(yīng)調(diào)優(yōu)方法把生產(chǎn)者個數(shù)設(shè)定為3 個,交易量承受范圍為0~150 個。在接受交易量較少時,消耗單位能量處理的交易量少,隨著接受的交易量提升而提高,在實(shí)際應(yīng)用中會造成大量的能源浪費(fèi)。本文方法動態(tài)調(diào)整生產(chǎn)者個數(shù),交易量承受范圍也為0~150 個,在交易量較少時本文方法高于基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法,交易量較大時與其持平,避免出現(xiàn)消耗能量高但處理交易量低的情況。

        圖15 消耗單位能量處理的交易大小

        由圖16 可知,原Kafka 算法在接收到的交易量較少時,使用率與本文方法持平,但其無法承受較大交易量的情況。改進(jìn)型Partition 過載優(yōu)化算法接收到的交易量較少時,使用率略低于本文方法,其系統(tǒng)承受能力較原算法有所提高但仍無法承受較大交易量的情況?;诔闃拥腒afka 自適應(yīng)調(diào)優(yōu)算法在發(fā)送交易量較少時,使用率遠(yuǎn)低于本算法。處理交易量較高時,效率與本文算法持平。當(dāng)本文方法增加生產(chǎn)者個數(shù)時,系統(tǒng)使用率曲線先快速下降,而后隨著交易量上升逐步提升。

        圖16 系統(tǒng)使用率

        由圖17 可知實(shí)驗(yàn)中各方法在不同交易量情況下的能耗。Kafka 原算法可承受的交易量為0~52個,因此交易量大于52 時,能耗柱狀圖歸零。改進(jìn)型Partition 過載優(yōu)化算法,可承受的交易量為0~60,因此交易量大于60 時,能耗柱狀圖歸零。

        圖17 系統(tǒng)能耗

        由圖18 可知,Kafka 原算法其系統(tǒng)使用率與能量之比最高、能耗低,但只能應(yīng)對交易量較少的情況。改進(jìn)型Partition 過載優(yōu)化算法可處理的交易量情況優(yōu)于原算法,但其承受力遠(yuǎn)低于本文算法。基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法,將生產(chǎn)者個數(shù)設(shè)定為3,可以應(yīng)對各種交易量情況,但系統(tǒng)使用率與能量之比過低,在系統(tǒng)使用率低、處理較少交易時,依舊消耗大量能量。本文方法動態(tài)調(diào)整生產(chǎn)者個數(shù),在交易量較少時系統(tǒng)使用率與能量之比較高,當(dāng)預(yù)測到交易量上升時增加生產(chǎn)者個數(shù)后,系統(tǒng)使用率與能量之比有所降低,但可以應(yīng)對各種交易量情況。在交易量處于0~99 區(qū)間時系統(tǒng)使用率與能量之比高于基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法,在交易量處于100~150 區(qū)間時2 種方法持平。

        圖18 系統(tǒng)使用率與能耗之比

        系統(tǒng)效率用于衡量系統(tǒng)對性能和能耗的兼顧情況。系統(tǒng)效率越高,意味著系統(tǒng)對兩者的兼顧情況越好。根據(jù)式(13),計(jì)算各方法系統(tǒng)效率。

        由圖19 可知根據(jù)不同生產(chǎn)者個數(shù)情況下平均吞吐速率和能耗計(jì)算結(jié)果。從實(shí)驗(yàn)中各種交易量情況進(jìn)行整體分析,如圖17 最右側(cè)柱狀圖所示,Kafka原算法系統(tǒng)效率為27.7%,改進(jìn)型Partition 過載優(yōu)化算法系統(tǒng)效率為39.96%,本文算法3 種情況平均為80.32%,基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法為77.4%。原算法的能耗雖然低,但其吞吐速率和系統(tǒng)承載力同樣較低,可接受的交易量范圍只在0~52 之間。改進(jìn)型Partition 過載優(yōu)化算法由于只通過提升分區(qū)數(shù)而提升吞吐速率,并未增加生產(chǎn)者個數(shù),因此其系統(tǒng)效率在系統(tǒng)可承受交易量范圍內(nèi)極高,但其只能處理0~60 個交易的情況,系統(tǒng)承載力遠(yuǎn)低于本文算法。基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法,在將生產(chǎn)者個數(shù)設(shè)定為3 后,雖然吞吐速率明顯提升,但其能耗也大幅度增加,交易量較少時造成資源浪費(fèi)。本文方法系統(tǒng)效率最高,系統(tǒng)承載力強(qiáng)且能耗較低。

        圖19 系統(tǒng)效率

        實(shí)驗(yàn)中,式(10)可化簡為

        設(shè)定t時刻系統(tǒng)開啟1 個生產(chǎn)者可以處理接收到的全部交易(即1 個生產(chǎn)者t時刻的吞吐速率和緩存空間大小之和大于等于交易總大小),但系統(tǒng)中多于1 個生產(chǎn)者的情況或類似情況會造成資源浪費(fèi)。根據(jù)式(32)和對比實(shí)驗(yàn)中交易大小、交易量、緩存空間大小、吞吐速率等數(shù)據(jù)進(jìn)行計(jì)算。

        由圖20 可知,Kafka 原算法、改進(jìn)型Partition 過載優(yōu)化算法不存在資源浪費(fèi)情況,但系統(tǒng)承受力低,可承受交易個數(shù)范圍分別為0~52、0~60。基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法將生產(chǎn)者個數(shù)設(shè)定為3,可以提高系統(tǒng)承受力,可接受交易量為0~150,但資源浪費(fèi)比率高達(dá)71.3%。本文方法系統(tǒng)可承受交易量為0~150,且資源浪費(fèi)比率遠(yuǎn)低于基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法,3 種情況平均為6.66%。

        圖20 系統(tǒng)產(chǎn)生資源浪費(fèi)情況比率

        2.4 實(shí)驗(yàn)分析

        本文方法可以在面對不同交易量情況下,智能化動態(tài)調(diào)整生產(chǎn)者個數(shù),可將生產(chǎn)者個數(shù)由傳統(tǒng)算法的1 個提升為2、3 個,使各項(xiàng)指標(biāo)得到提升,綜合評價(jià)情況達(dá)到最優(yōu)。實(shí)驗(yàn)中,Kafka 原算法、改進(jìn)型Partition 過載優(yōu)化算法、本文算法、基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法,其系統(tǒng)可承載交易量分別為0~52 個、0~60 個、0~150 個、0~150 個,意味著4種算法分別在接收到交易個數(shù)為52、60、150、150 時系統(tǒng)使用率趨近100%,本文算法系統(tǒng)承載力大幅提高。實(shí)驗(yàn)中各方法最大吞吐速率分別為52 kB/s、65 kB/s、151 kB/s、151 kB/s,本文方法將吞吐速率提升近3 倍,時延降低了2~3 倍。Kafka 原算法、改進(jìn)型Partition 過載優(yōu)化算法、本文算法、基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法消耗單位能量所處理的交易最大分別為1.28 kB、1.23 kB、1.23 kB、1.476 kB,本文方法在大幅提升系統(tǒng)承載力的基礎(chǔ)上,消耗單位能量處理交易量與原算法和改進(jìn)型Partition 過載優(yōu)化算法基本持平。且由圖15 可知,本文算法消耗單位能量處理交易量在絕大多數(shù)情況下高于基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法。由于提升生產(chǎn)者個數(shù),因此系統(tǒng)能耗會出現(xiàn)提升,Kafka 原算法、改進(jìn)型Partition 過載優(yōu)化算法、本文算法、基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法系統(tǒng)平均能耗分別為65 J、65 J、130 J、195 J。本文算法在系統(tǒng)能耗指標(biāo)方面并未達(dá)到最低,但由于Kafka 原算法和改進(jìn)型Partition 過載優(yōu)化算法能耗雖低,但其系統(tǒng)承受力同樣低。且通過系統(tǒng)使用率與能耗之比可知,Kafka 原算法、改進(jìn)型Partition 過載優(yōu)化算法、本文算法、基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法系統(tǒng)使用率與能耗之比最高分別為1.538、1.538、1.453、0.497?;诔闃拥腒afka 自適應(yīng)調(diào)優(yōu)方法存在嚴(yán)重資源、能源浪費(fèi)情況,因此需要結(jié)合系統(tǒng)效率做更加全面的評價(jià)。通過系統(tǒng)效率可知,本文方法系統(tǒng)效率為80.32%,相比于原算法的27.7% 提升了56.62%,比改進(jìn)型Partition 過載優(yōu)化算法的39.96%提升了40.63%,比基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法的77.4%提升了2.92%。本文方法資源浪費(fèi)比率為6.66%,優(yōu)于基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法的71.3%,很好地兼顧了性能和能耗。因此綜合性能、能耗及智能化考量,本文算法優(yōu)于Kafka 原算法、Kafka 中改進(jìn)型Partition 過載優(yōu)化算法和基于抽樣的Kafka 自適應(yīng)調(diào)優(yōu)方法。

        3 結(jié)論

        Kafka 系統(tǒng)在接受大量數(shù)據(jù)時,易產(chǎn)生數(shù)據(jù)傾斜的情況,從而導(dǎo)致性能下降的問題。本文提出了一種基于時間序列模型的智能化管理方法解決了上述問題。通過學(xué)習(xí)過往Kafka 系統(tǒng)生產(chǎn)者接收到的交易量,預(yù)測下一時刻可能會面臨的交易總量,動態(tài)調(diào)整作為生產(chǎn)者的節(jié)點(diǎn)數(shù)量,進(jìn)而減少大量數(shù)據(jù)集中在少數(shù)節(jié)點(diǎn)的情況。實(shí)驗(yàn)證明,提升生產(chǎn)者個數(shù)可以在吞吐速率和時延方面大幅度提升系統(tǒng)性能,預(yù)測機(jī)制可以根據(jù)交易量靈活調(diào)整生產(chǎn)者個數(shù),避免出現(xiàn)在低交易量情況下多個生產(chǎn)者運(yùn)行,而造成能耗過高的情況,同時更加合理地利用系統(tǒng)資源,提高系統(tǒng)效率與合理性。本文方法為未來共識算法的優(yōu)化提出新的思考,使針對Kafka 系統(tǒng)的優(yōu)化不再停留于修改配置參數(shù)層面,而進(jìn)入到使整個系統(tǒng)更加智能的全面優(yōu)化階段。為Kafka 共識算法在區(qū)塊鏈和其他領(lǐng)域中的應(yīng)用提供新的思路和參考,使其可以更好地與大數(shù)據(jù)、物聯(lián)網(wǎng)、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等領(lǐng)域協(xié)作,更全面地滿足互聯(lián)網(wǎng)時代對數(shù)據(jù)安全更加豐富且多元化的需求。

        猜你喜歡
        交易量生產(chǎn)者個數(shù)
        1月巴西生產(chǎn)者價(jià)格指數(shù)上漲3.92%
        怎樣數(shù)出小正方體的個數(shù)
        等腰三角形個數(shù)探索
        怎樣數(shù)出小木塊的個數(shù)
        2019德國IF設(shè)計(jì)大獎
        怎樣數(shù)出小正方體的個數(shù)
        家禽福利的未來:生產(chǎn)者能期待什么?
        一場大風(fēng)帶給生產(chǎn)者的思考
        大中華區(qū)私募股權(quán)
        无码熟妇人妻av在线c0930| 国产2021精品视频免费播放| 婷婷五月综合激情| 久久久受www免费人成| 强行无套内谢大学生初次| 国产精品成年片在线观看| 在线观看免费a∨网站| 中文字幕久久久久人妻无码| 九一成人AV无码一区二区三区| 中文字幕在线观看乱码一区| 国产午夜av一区二区三区| 亚洲丰满熟女一区二亚洲亚洲 | 日本久久视频在线观看| 亚洲国产免费不卡视频| 欧美群妇大交群| 无码人妻精品一区二区蜜桃网站 | 中文字幕一二区中文字幕| 蜜臀精品一区二区三区| 国产免费人成视频在线观看| 久草青青91在线播放| 日本少妇高潮喷水xxxxxxx| 天天天天躁天天爱天天碰| 国产激情久久99久久| 亚洲中文字幕国产剧情| 国产一区二区三区天堂 | 亚洲av调教捆绑一区二区三区 | а√中文在线资源库| 国产成人精品123区免费视频| 最近日本中文字幕免费完整| 国产高潮刺激叫喊视频| 久久久久欧洲AV成人无码国产 | 久久人人爽人人爽人人片av麻烦| 99福利网| 网友自拍人妻一区二区三区三州| 国产亚洲91精品色在线| 成人丝袜激情一区二区| 午夜精品久久久久久毛片| 成年午夜无码av片在线观看| 久久精品中文字幕第一页| 精品亚洲av一区二区| 亚洲伦理第一页中文字幕|